我正在设计一个测试类,它在所有测试方法之前创建一个表,然后每个测试方法在表中事务性地插入和删除一些数据。最后,在所有方法执行之后,它会删除表。
代码如下:
@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
在每个测试方法中,表将被正确地创建/删除。
请给我一些提示,谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!