【发布时间】:2014-07-02 14:13:16
【问题描述】:
我认为一段被测代码不应该知道它正在被测试。因此,这个问题代表了一种反模式,但我需要以“如果从 JUnit 集成测试调用”的特定方式配置遗留应用程序。如果您认为这听起来像是一个不使用 CDI 的应用程序,那么您是对的。
我总是可以遍历堆栈,看看我是否是从 JUnit 调用的。我希望有更优雅的东西。
【问题讨论】:
-
您需要配置什么?我在想也许使用模拟框架(4eg mockito + powermock)会有所帮助,或者可能从 JUnit 测试用例中进行一些反思,以避免为了测试而修改生产代码。
-
感谢您的评论。集成测试需要读取数千行(大约 4000 行)并更新其中的一些行,然后用不同的数据重复该过程大约 250 次(现在我们有 500000 个模拟对象)。测试是多线程的,我们特别希望数据库介于两者之间。请记住,我提到这是一个集成测试,它不是在 Continuos 集成期间运行的测试,是的,它确实依赖于与之集成的系统。
-
对不起,错过了它是一个集成测试的事实,那就没有模拟了。但是,您仍然需要让我们知道您需要在测试中进行哪些配置。
-
我们需要配置的很多东西包括JNDI数据源、系统属性等。我们没有在测试工具中运行(我猜 JUnit 就是那个工具),但遗留代码是一个 Web 应用程序。
标签: junit junit4 junit3 junit-runner