@PrepareForTest注释的问题

时间:2017-06-29 13:25:35

标签: java junit mockito powermockito

有没有办法为类中的所有测试使用一个@PrepareForTest注释? 我看到尽管编写了例如@PrepareForTest(PortalUtil.class)的setUp方法,但我必须使用每个使用PortalUtil.class的测试方法再次编写它。可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以将注释放在测试类的顶部。

@PrepareForTest(PortalUtil.class)
public class MyTest {
    ....
}

来自javadoc的注释:

  

此注释可以放在测试类和单独的测试方法中。如果放在类中,则此测试类中的所有测试方法都将由PowerMock处理(以允许可测试性)。要为单个方法覆盖此行为,只需在特定测试方法上放置@PrepareForTest注释即可。这在例如您想要在测试方法A中修改类X而在测试方法B中希望X保持不变的情况下非常有用。在这种情况下,你在方法B上放置一个@PrepareForTest,并从value()列表中排除类X.

https://static.javadoc.io/org.powermock/powermock-core/1.6.5/org/powermock/core/classloader/annotations/PrepareForTest.html