与普通的JUnit相比,Powermock JUnit测试需要更多的时间来执行

Sri*_*nth 5 java junit powermock

我们使用powermock通过使用@PrepareForTest注释来模拟静态方法.测试运行正常,但问题是执行测试需要更多时间.

代码段如下:

@PrepareForTest({ StaticClass1.class, StaticClass2.class })
Run Code Online (Sandbox Code Playgroud)

通常,没有模拟静态方法的JUnit需要大约2秒的时间来执行,但是当我们添加@PrepareForTest注释来模拟静态调用时,测试花费大约一分钟时间来完成执行.对于一次测试,这不是一个很大的影响,但我们有超过1K的测试,整体构建时间超过2小时,之前大约需要20-30分钟.

这可能是因为电力公司花了这么多时间的原因.

任何帮助将不胜感激.

m3t*_*man 5

PowerMock是一个在生成的类上执行字节码检测的工具.将类编译为Java Bytecode后,PowerMock会出现并修改生成的类.否则(通过使用Java代理)模拟私有或静态方法是不可能的.

您只应@PrepareForTest在要使用PowerMock独有功能的类中使用注释,例如模拟私有或静态方法.