我们使用 powermock 来模拟静态方法@PrepareForTest
注释。测试运行良好,但问题是执行测试需要更多时间。
代码片段如下:
@PrepareForTest({ StaticClass1.class, StaticClass2.class })
通常,没有模拟静态方法的 JUnit 需要大约 2 秒的时间来执行,但是当我们添加@PrepareForTest
用于模拟静态调用的注释,测试大约需要一分钟时间才能完成执行。对于一项测试来说,这并不是一个很大的影响,但我们有超过 1K 次测试,总体构建时间超过 2 小时,而之前需要大约 20 - 30 分钟。
powermock 花费如此多时间的原因可能是什么?
任何帮助将不胜感激。
PowerMock 是一个对生成的类执行字节码检测的工具。一旦您的类被编译成 Java 字节码,PowerMock 就会出现并修改生成的类。否则(通过使用 Java 代理)不可能模拟私有或静态方法。
你应该只使用@PrepareForTest
仅在那些您想要使用 PowerMock 专有功能的类中添加注释,例如模拟私有或静态方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)