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)
  • Field Details

    • entityManager

      @Autowired private org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager entityManager
    • cliente

      @Autowired private ClienteRepository cliente
    • datasource

      @Autowired private DataSource 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.