在测试用例类/方法中执行sql before/after/in

clj7thdc  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(189)

我正在设计一个测试类,它在所有测试方法之前创建一个表,然后每个测试方法在表中事务性地插入和删除一些数据。最后,在所有方法执行之后,它会删除表。
代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@PrepareForTest(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
    "classpath:spring/testApplicationContext_zenith.xml", "classpath:spring/service_dao.xml"
})
@SqlGroup({
    @Sql("classpath:mybatis/preset/create_test_table.sql"),
    @Sql(scripts = "classpath:mybatis/preset/drop_test_table.sql", executionPhase = AFTER_TEST_METHOD)
})
public class ConnectorTest {
    @Test
    @Transactional
    @Sql("classpath:mybatis/preset/insert_some_data.sql")
    public void test_001() {}

    @Test
    @Transactional
    @Sql("classpath:mybatis/preset/insert_some_other_data.sql")
    public void test_002() {}
}

然而,它并没有像我想的那样工作,它会停留在 @Sql("classpath:mybatis/preset/insert_some_data.sql") ,表示应该由 @Sql("classpath:mybatis/preset/create_test_table.sql") 不存在——实际上并不创造。
但如果我移除 @Sql 在每个测试方法中,表将被正确地创建/删除。
请给我一些提示,谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题