unit-testing - BeforeClass 使用 Spring 事务测试

标签 unit-testing hibernate spring junit

我正在使用 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/

相关文章:

javascript - Mocha 'Uncaught ReferenceError: window is not defined'

javascript - 使用 ngModel 进行 Angular 2 单元测试

java - JUnit - 测试网站

java - 测试SessionFactory是否有效

java - Spring @Autowire 注解

java - 验证 Spring Web 应用程序配置的最佳实践

c# - 使用 nunit 测试事件

java - Hibernate 中的三元(和 n 元)关系

mysql - 从 Hibernate 获取重复输入错误,是 MySQL 的错吗?

java - 从 ApplicationListener 关闭 spring 应用程序