【发布时间】:2014-11-26 15:24:35
【问题描述】:
我的项目中有很多 JUnit 测试。其中一些有一些副作用,可能会影响其他测试的执行。例如,他们打开数据库连接并忘记关闭它们,然后在某些时候测试开始失败,因为它们达到了限制。我认为我可以使用一些 mixins 进行测试,我可以像这样使用......
@CheckThatConnectionsAreClosed
@LogExecutionTime
@Test
public void testSomething() {
// ...
sessionFactory.openSession(); // hey look! I didn't close it!
// ...
}
...所以当我运行它时,我会得到一个断言错误以及有关执行时间的信息。
我的意思是,检查连接是否关闭很简单,但是将代码手动放入每个测试类或方法中的 @Before 和 @After 方法似乎是个坏主意。
我想到的那些注释将是有效的方法拦截器,我猜想使用自定义测试运行程序是可能的。但也许有一些更简单的方法可以实现这一点?或者也许它已经在一些好的库中完成了?
【问题讨论】:
标签: java junit annotations interceptor