@SuppressStaticInitializationFor PowerMock注释的范围是什么?

时间:2014-07-29 12:58:32

标签: junit powermock

有谁知道这个注释的范围是什么?例如,如果我有多个在同一个VM中按顺序运行的JUnit测试类,并且第一个测试使用@SuppressStaticInitializationFor,那么是否也会抑制所有后续测试类的静态初始化?我问,因为我的印象是静态持续了JVM的生命。

2 个答案:

答案 0 :(得分:1)

范围是每个类加载器。一旦你使用了@SuppressStaticInitialization,它就会影响所有其他测试中的类。但是,您可以在方法级别使用@SuppressStaticInitializationFor,这样就不会影响其他测试。

答案 1 :(得分:0)

您可以在想要抑制它的测试的类级别或方法级别使用@SuppressStaticInitializationFor批注。

@RunWith(PowerMockRunner.class)
@SuppressStaticInitializationFor("com.main.java.CassName")
public class TestClassName extends PowerMockTestCase {
    //code
    @SuppressStaticInitializationFor("com.main.java.AnotherClassName")
    public void testMethod() {
        //code
    }
}

通过这种方式,您可以控制哪个方法应禁止使用静态初始化方法(构造函数)以及哪个类。