我正在使用 Spring 事务测试类对我的 DAO 代码进行单元测试。我想要做的是在所有测试运行之前创建我的数据库一次。我有一个带 @BeforeClass 注释的方法,但它在 Spring 加载应用程序上下文并配置 jdbcTemplate 之前运行,因此当时我实际上没有连接到数据库。有没有办法在上下文加载之后但在测试开始运行之前运行我的数据库设置?
This thead问了同样的问题,但公认的解决方案似乎只是“不要那样做”。我倾向于说这似乎是不可行的。
最佳答案
我的第二个建议是,你应该让你的每个测试都是自主的,因此用 @Before 而不是 @BeforeClass 来完成你的所有设置。
如果您想坚持您的方法,只需使用 @Before 方法并进行简单的 bool 检查以查看设置是否已完成。例如
if(!databaseSetup) {
...set up the database
databaseSetup=true;
}
不太花哨,但它会起作用!
看我的回答 here例如,使用 dbunit 进行注释的 spring 事务测试。
希望这可以帮助!
关于unit-testing - BeforeClass 使用 Spring 事务测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988850/