【发布时间】:2015-01-23 11:19:35
【问题描述】:
我正在尝试结合以下注释:
org.springframework.test.context.jdbc.Sql 和 org.junit.Before
喜欢下面的代码:
@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");
}
方法@Before中的代码在@Sql注解中的脚本“dml-parametro.sql”之后运行。
这样做是否正确?
为了解决这个问题,我使用 @After 而不是 @Before,但我想在测试执行之前 cdelete 表,而不是之后。
我不想使用@SqlConfig。我没有在测试级别使用跨域范围,所以我需要在每种测试方法中清理我的表。如果每个测试方法都需要清理表,我想在 @Before 方法中执行此操作。我不想在每个使用@SqlConfig 的测试方法中都这样做。我认为@Sql 的行为比@Before 更早执行是错误的。
【问题讨论】:
标签: spring spring-test