Persistencia

Spring Data

Tests

Integración

Para probar sólo las entidades y sus repositorios, se utiliza la anotación @DataJpaTest que automáticamente configura una BD en memoria cuyos datos se resetean en cada test.

@DataJpaTest class RepoOperacionTest {
  @Autowired RepoOperacion repoOperacion;

  @Test void jpaTest() {
    // Given ...
    Usuario usuario = new Usuario();
    usuario.id = 1L;
    Contador contador = new Contador();
    contador.id = 200L;
    Operacion operacion = new Operacion();
    operacion.tipo = "creación";
    operacion.fecha = Timestamp.from(Instant.now());
    operacion.contador = contador;
    operacion.usuario = usuario;
    // When ...
    DataIntegrityViolationException error = null;
    try { 
      repoOperacion.save(operacion); 
    } catch (DataIntegrityViolationException e) { error = e; }
    // Then ...
    assertNotNull(error);
  }
}

❓ Pregunta: Teniendo en cuenta el modelo de datos de contadores, ¿qué característica está probando el test anterior?