【问题标题】:How to tell if called from JUnit?如何判断是否从 JUnit 调用?
【发布时间】: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


【解决方案1】:

如何使用由 JUnit 测试设置、由被测类评估并随后由 JUnit 重置的系统属性?

【讨论】:

  • 我已经完全实现了这一点。我想知道我是否在复制 jUnit 已有的一些功能。
  • 抱歉,JUnit 没有针对这个用例的特殊功能。
猜你喜欢
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 2011-07-27
相关资源
最近更新 更多