小编Raf*_*ada的帖子

如何在@Before方法之前执行@Sql

我正在尝试结合以下注释:

org.springframework.test.context.jdbc.Sqlorg.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");
}
Run Code Online (Sandbox Code Playgroud)

方法@Before中的代码在@Sql批注中的脚本"dml-parametro.sql"之后运行.

这样做是对的吗?

为了解决这个问题,我使用@After而不是@Before,但是我想在测试执行之前而不是之后删除表.

我不想使用@SqlConfig.我没有在测试级别上使用transacional scope,所以我需要在每个测试方法中清理我的表.如果每个测试方法都需要清理表,我想在@Before方法中执行此操作.我不想在每个使用@SqlConfig的测试方法中都这样做.我认为@Sql在@Before之前执行的行为是错误的.

spring spring-test

20
推荐指数
1
解决办法
3万
查看次数

标签 统计

spring ×1

spring-test ×1