有谁知道这个注释的范围是什么?例如,如果我有多个在同一个VM中按顺序运行的JUnit测试类,并且第一个测试使用@SuppressStaticInitializationFor,那么是否也会抑制所有后续测试类的静态初始化?我问,因为我的印象是静态持续了JVM的生命。
答案 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
}
}
通过这种方式,您可以控制哪个方法应禁止使用静态初始化方法(构造函数)以及哪个类。