I'm trying to combine the follow annotations:
org.springframework.test.context.jdbc.Sql and org.junit.Before
Like the follow code:
@Test
@Sql(scripts = "dml-parametro.sql")
public void testData(){
Iterable<Parametro> parametros = parametroService.findAll();
List<Parametro> parametrosList = Lists.newArrayList(parametros);
Assert.assertThat(parametrosList.size(), Is.is(1));
}
@Before
public void beforeMethod() {
JdbcTestUtils.deleteFromTables(jdbcTemplate, "PARAMETRO");
}
The code in the method @Before is running after then the script "dml-parametro.sql" in the @Sql annotation.
Is it right to do this?
For solution this, I'm using @After in place than @Before, but I'd like to cdelete tables before the test execution, not after.
I wouldn't like to use @SqlConfig. I'm not using transacional scope on test level, so i need to clean my tables in every test method. If every test method need to clean tables, i would like to do this in @Before method. I wouldn't like to do this in every test method with @SqlConfig. I think the behavior of @Sql to be execute before than @Before is wrong.
See Question&Answers more detail:os