如何判断是否从JUnit调用?

如何判断是否从JUnit调用?,junit,junit4,junit3,junit-runner,Junit,Junit4,Junit3,Junit Runner,我认为一段被测试的代码不应该知道它正在被测试。因此,这个问题代表了一种反模式,但我需要以“如果从JUnit集成测试调用”的特定方式配置遗留应用程序。如果您认为这闻起来像是一个不使用CDI的应用程序,那么您是正确的 我总是可以遍历堆栈,看看是否从JUnit调用了我。我希望有更优雅的东西 如何使用由JUnit测试设置、由被测类评估并在之后由JUnit重置的系统属性?您需要配置什么?我想也许使用一个mock框架(4eg mockito+powermock)会有所帮助,或者使用JUnit测试用例进行一些

我认为一段被测试的代码不应该知道它正在被测试。因此,这个问题代表了一种反模式,但我需要以“如果从JUnit集成测试调用”的特定方式配置遗留应用程序。如果您认为这闻起来像是一个不使用CDI的应用程序,那么您是正确的


我总是可以遍历堆栈,看看是否从JUnit调用了我。我希望有更优雅的东西

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

您需要配置什么?我想也许使用一个mock框架(4eg mockito+powermock)会有所帮助,或者使用JUnit测试用例进行一些反思,以避免为了测试而修改生产代码。谢谢您的评论。集成测试需要读取数千行(大约4000行)并更新其中的一些行,然后使用不同的数据重复该过程大约250次(现在我们有500000个模拟对象)。测试是多线程的,我们特别希望数据库介于两者之间。记得我提到过这是一个集成测试,它不是在Continuos集成期间运行的测试,是的,它确实依赖于与集成的系统。抱歉,错过了这是一个集成测试的事实,没有模拟。但是,您仍然需要让我们知道您需要在测试中配置什么。我们需要配置的很多东西包括JNDI数据源、系统属性等。我们不是在一个测试工具中运行(我想JUnit就是这个工具),但是遗留代码是一个web应用程序。我想知道我是否在复制jUnit已经拥有的一些功能。对不起,jUnit对于这个用例没有特殊的功能。