我在tomcat容器中开发应用程序时使用Eclipse和JUnit 4。容器管理与Oracle数据库的连接。
在使用JUnit进行测试时,我遇到了以下问题:在测试主题的构造函数中有类似这样的内容:
public Subject() {
// stuff
FancySingleton.getInstance().getFancy("stuff");
}
不幸的是,方法getFancy()
尝试执行一个它无法执行的查询,因为JUnit不会在tomcat容器中运行并最终以无限循环结束。
我的第一个想法是赞美代码。第二个想法似乎是一个坏主意。我可能忘记在提交之前删除评论。
我的第二个想法是强调eclipse的代码,以便在运行JUnit测试时不执行它。但它需要eclipse来支持这种方法。
最后我想到了类似预处理器指令的东西。
你的想法是什么?只是将布尔值传递给构造函数就不是处理这种情况的干净方法。
答案 0 :(得分:3)
你要么模仿FancySingleton,要么你做得正确并注入实现。