Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
Articles
Articles_pt
LeftMenu




JSPWiki v2.2.33

[RSS]


Hide Menu

CreateDAO_es


Difference between version 25 and version 24:

At line 10 changed 1 line.
* Una clase [JUnit|http://www.junit.org] para testear que nuestro DAO funciona :-)
* Una clase [JUnit|http://www.junit.org] para testear que nuestro DAO funciona :-)
At line 205 changed 1 line.
El c&oacutedigo anterior es lo que Ud. necesita para realizar una prueba unitaria b&aacutesica que inicialize y destruya nuestro PersonDao. El objeto "ctx" es una referencia al objeto Application Context de Spring, el cual es inicializado en un bloque est&aacutetico de la clase [BaseDaoTestCase's|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDaoTestCase.java.html] .
El c&oacute+digo anterior es lo que Ud. necesita para realizar una prueba unitaria b&aacute+sica que inicialize y destruya nuestro PersonDao. El objeto "ctx" es una referencia al objeto Application Context de Spring, el cual es inicializado en un bloque est&aacute+tico de la clase [BaseDaoTestCase's|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDaoTestCase.java.html] .
At line 207 changed 1 line.
Ahora necesitamos probar que las operaciones CRUD (create, retrieve, update, delete) methods funcionan en nuestro DAO. Para ello, crearemos metodos que empiecen con el vocablo "test" (en min&uacutesculas). Estos m&eacutetodos al ser p&uacuteblicos,retornan void y no aceptan par&aacutemetros de entrada, ser&aacuten ejecutados por la tarea <junit> que se encuentra en el fichero build.xml de Ant .
Ahora necesitamos probar que las operaciones CRUD (create, retrieve, update, delete) methods funcionan en nuestro DAO. Para ello, crearemos metodos que empiecen con el vocablo "test" (en min&uacutesculas). Estos m&eacutet+odos al ser p&uacute+blicos,retornan void y no aceptan par&aacutemetros de entrada, ser&aacute+n ejecutados por la tarea <junit> que se encuentra en el fichero build.xml de Ant .
At line 209 changed 2 lines.
Aca le mostramos algunas pruebas sencillas para probar las operaciones CRUD. Lo importante a recordad es que cada m&eacutetodo debe ser aut&oacutenomo. Anada los siguientes metodos a la clase
PersonDaoTest.java:
Aca le mostramos algunas pruebas sencillas para probar las operaciones CRUD. Lo importante a recordad es que cada m&eacutetodo debe ser aut&oacutenomo. Añada los siguientes métodos a la clase PersonDaoTest.java:
At line 259 changed 1 line.
;:%%(color: blue)''En el método testGetPerson , estamos creando una persona y luego lo recuperamos de la base de datos. Generalmente adiciono métodos en la base de datos de manera que puedo siempre contar con datos fiables. Debido que [DBUnit|http://www.dbunit.org] es usado para llenar la base de datos con datos para prueba, Ud. puede simplemente anadir una nueva tabla o un record al fichero metadata/sql/sample-data.xml:''%%
;:%%(color: blue)''En el método testGetPerson , estamos creando una persona y luego lo recuperamos de la base de datos. Generalmente adiciono métodos en la base de datos de manera que puedo siempre contar con datos fiables. Debido que [DBUnit|http://www.dbunit.org] es usado para llenar la base de datos con datos para prueba, Ud. puede simplemente añadir una nueva tabla o un record al fichero metadata/sql/sample-data.xml:''%%
At line 276 changed 1 line.
;:%%(color: blue)''De esta manera,puedes eliminar la funcionalidad "create new" en el m&eacutetodo testGetPerson. Si prefiere anadir este record directamente a la base de datos , (via SQL o una intefaz GUI), you can rebuild your sample-data.xml file using "ant db-export" and then "cp db-export.xml metadata/sql/sample-data.xml".''%%
;:%%(color: blue)''De esta manera,puedes eliminar la funcionalidad "create new" en el m&eacutetodo testGetPerson. Si prefiere añadir este record directamente a la base de datos , (via SQL o una intefaz GUI), puede reconstruir el fichero sample-data.xml usando "ant db-export" y luego "cp db-export.xml metadata/sql/sample-data.xml".''%%
At line 278 changed 2 lines.
In the above example, you can see that we're calling person.set*(value) to populate our object before saving it. This is easy in this example, but it could get quite cumbersome if we're persisting an object with 10 required fields (not-null="true"). This is why I created the ResourceBundle in the BaseDaoTestCase. Simply create a PersonDaoTest.properties file in the same directory as the PersonDaoTest.java file and define your property values inside it:
;:''I tend to just hard-code test values into Java code - but the .properties file is an option.''
En el ejemplo anterior, Ud. puede que estamos invocando los métodos person.set*(valor) para llenar el objeto antes de guardarlo en la base de datos. Es fácil en este ejemplo , pero puede ser un poco enredoso si queremos persistir un objeto con 10 atributos que sean obligatorios This is easy in this example, but it could get quite cumbersome if we're persisting an object with (not-null="true"). Es por esta razon que he creado un ResourceBundle en la clase BaseDaoTestCase. Crea simplemente un fichero PersonDaoTest.properties en el mismo directorio que el fichero PersonDaoTest.java y defina los valores de los atributos:
;:''Normalmente tiendo a definir valores fijos en el código Java - pero el fichero .properties es una opción.''
At line 284 removed 1 line.
Then, rather than calling person.set* to populate your objects, you can use the BaseDaoTestCase.populate(java.lang.Object) method:
At line 284 added 2 lines.
Entonces, en vez de invocar los metodos person.set* para poblar los objetos, puede usar el método BaseDaoTestCase.populate(java.lang.Object) :
At line 292 changed 1 line.
At this point, the PersonDaoTest class won't compile yet because there is no PersonDao.class in our classpath, we need to create it. PersonDAO.java is an interface, and PersonDAOHibernate.java is the Hibernate implementation of that interface. Let's go ahead and create those.
En este momento, la clase PersonDaoTest class no compilará todavia porque no hay ninguna PersonDao.class en el classpath, por lo tanto tenemos que crearlo. PersonDAO.java es una interface y la clase PersonDAOHibernate.java es una implementación de esta interface.
At line 294 changed 1 line.
!!Create a new DAO to perform CRUD on the object [#4]
!!Crear una nueva clase DAO que contenga métodos CRUD [#4]

Back to CreateDAO_es, or to the Page History.