I'm trying to combine the follow annotations:
org.springframework.test.context.jdbc.Sql
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 than the dml-parametro.sql
script 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 transactional 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.