Powermockito:如何发布'一个用@PrepareForTest注释的类?

时间:2015-01-09 10:37:22

标签: testng mockito powermock

我有一个班级,例如ExampleClass由静态函数组成。为了在另一个类中进行测试,使用@PrepareForTest注释对powermock进行模拟,然后由mockStatic进行模拟。

ExampleClass的测试类本身也将PowerMockTestCase扩展为静态模拟第三方库。

现在的问题是,我们的代码覆盖率工具不再运行这些测试了。我怀疑ExampleClass在某种程度上被@PrepareForTest注释“隐藏”了。因此,在运行测试类之后,我想做一些类似于“释放”带注释的类或从powermockito类加载器中删除它。 怎么办呢?

以某种方式'释放'班级

1 个答案:

答案 0 :(得分:0)

我认为您担心的是所有单元测试都可能在同一个类加载器中运行,因为PowerMock操作的ExampleClass类也可能影响其他单元测试。在这种情况下,您可以尝试:

  • 使用PowerMock的Java agent使用Java检测API而不是类加载器进行引导OR
  • 实现一个JUnitRunner,它在一个单独的类加载器中执行每个测试。请查看此thread

我认为JUnit使用单独的类加载器进行测试,但我找不到任何权威来源。