0

我在 tomcat 容器中开发应用程序时使用 Eclipse 和 JUnit 4。容器管理与我们的 Oracle 数据库的连接。

在使用 JUnit 进行测试时,我遇到了以下问题: 在测试主题的构造函数中,有如下内容:

public Subject() {
    // stuff
    FancySingleton.getInstance().getFancy("stuff");
}

不幸的是,该方法getFancy()尝试执行它不能执行的查询,因为 JUnit 不在 tomcat 容器中运行并最终陷入无限循环。

我的第一个想法是超越代码。转念一想,这似乎是个坏主意。我可能会忘记在提交之前删除评论。

我的第二个想法是突出显示 eclipse 的代码,这样它就不会在运行 JUnit 测试时执行它。但是需要eclipse支持这样的方法。

最后我想到了预处理器指令之类的东西。

你有什么想法?只是将布尔值传递给构造函数并不是处理这种情况的一种干净方式。

4

1 回答 1

3

你要么模拟 FancySingleton,要么做对并注入一个实现。

于 2013-02-26T14:08:46.033 回答