Powermock - @SuppressStaticInitialization对于所有测试类的单次运行中影响要测试的实际静态类的单元测试

时间:2017-01-05 04:25:22

标签: unit-testing junit mockito powermock powermockito

我的所有静态方法都有一个 X 类。还有一个应用 A 来测试此类的行为。 我对两者都有单独的单元测试。 注意:我必须严格遵守为两者编写单独的单元测试。

抑制类 A 的静态初始化正在影响我在类中执行mockstatic的类 X 的单元测试> A

我不确定@SuppressStaticInitializationFor的范围。

1 个答案:

答案 0 :(得分:1)

当转向使用PowerMock来修复因不明智地使用静态而引入的问题时,这就是问题所在。请记住:静态是良好的OO设计中的异常 - 因为它打破(简单)单元测试,多态,并导致您的类直接耦合!

所以我的建议在这里:简单地避免使用 static 以导致您要求PowerMock进行单元测试的方式。换句话说:不使用PowerMock,而是学习如何创建可测试的代码(您可以启动here)),然后创建可以使用Mockito或EasyMock进行测试的生产代码......超级大国需要。

如果你不能这样做:至少要确保你从不创建破坏单元测试环境的静态初始化代码。对于您的开发团队来说,提出JUnit测试至少可以加载生产类是一个公平的要求。