Package giis.demo.descuento.ut
Class TestDescuentoRepository
java.lang.Object
giis.demo.descuento.ut.TestDescuentoRepository
@DataJpaTest
@TestPropertySource(locations="classpath:application-test.properties")
public class TestDescuentoRepository
extends Object
Pruebas del ejemplo de informe de descuentos de clientes leidos desde la base de datos (Problemas 3b y 3c):
Ilustra la configuracion para pruebas unitarias de repositorios en Spring Boot.
Las situaciones a cubrir son las mismas que en samples-test-java (giis.demo.descuento.ut.TestDescuentoDatabase.java) pero aqui realiza las comparaciones directamente de estructuras bidimensionales (lista de atributos de objetos).
La configuracion es la siguiente:
- DataJpaTest permite acceder a las entidades de la base de datos con una configuracion especifica para pruebas (ver detalles: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.html)
- TestPropertySource: Especifica un fichero de configuracion diferente (localizado en src/test/resources), en este caso solo se omite la carga de datos inicial de data.sql para que se arranque con una base de datos limpia (esto se podria hacer utilizando un profile diferente con su propia configuracion)
- RunWith: Se ha de especificar el runner especifico para Spring Booth (si no, las anotaciones son ignoradas)
Las situaciones a cubrir son las mismas que en samples-test-java (giis.demo.descuento.ut.TestDescuentoDatabase.java) pero aqui realiza las comparaciones directamente de estructuras bidimensionales (lista de atributos de objetos).
La configuracion es la siguiente:
- DataJpaTest permite acceder a las entidades de la base de datos con una configuracion especifica para pruebas (ver detalles: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.html)
- TestPropertySource: Especifica un fichero de configuracion diferente (localizado en src/test/resources), en este caso solo se omite la carga de datos inicial de data.sql para que se arranque con una base de datos limpia (esto se podria hacer utilizando un profile diferente con su propia configuracion)
- RunWith: Se ha de especificar el runner especifico para Spring Booth (si no, las anotaciones son ignoradas)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ClienteRepository
private DataSource
private org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Datos de prueba que se cargaran en el setup para cubrir las situaciones del disenyo de la prueba.void
setUp()
void
La misma forma de probar cuando hay parametros.void
Para la consulta sin parametros simplemente invoca el metodo del modelo que obtiene una lista de objetos (DTO) y la comparacion se realiza transformando estos con un metodo de utilidad que convierte la lista anterior a formato CSV.
-
Field Details
-
entityManager
@Autowired private org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager entityManager -
cliente
-
datasource
-
-
Constructor Details
-
TestDescuentoRepository
public TestDescuentoRepository()
-
-
Method Details
-
setUp
public void setUp() -
loadCleanDatabase
public void loadCleanDatabase()Datos de prueba que se cargaran en el setup para cubrir las situaciones del disenyo de la prueba. Notar que no se eliminan los datos antes de ejecutar porque el runner establece una transaccion y hace rollback al finalizar el test case, asegurando siempre base de datos limpia. Solamente a modo de ilustracion, los datos se cargan de tres formas diferentes. -
testConsultaSinParametro
public void testConsultaSinParametro()Para la consulta sin parametros simplemente invoca el metodo del modelo que obtiene una lista de objetos (DTO) y la comparacion se realiza transformando estos con un metodo de utilidad que convierte la lista anterior a formato CSV. -
testConsultaConParametro
public void testConsultaConParametro()La misma forma de probar cuando hay parametros.
-