码迷,mamicode.com
首页 > 其他好文 > 详细

mock时忽略不必要的初始化

时间:2017-08-20 15:43:33      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:etc   oid   his   variable   ted   wan   question   加载类   init   

PowerMockito.mockStatic时忽略加载类的静态field,比如想PowerMockito.mockStatic(ClassA.class),ClassA如下

public class ClassA {

private static final boolean CONF_FLAG = Configuration.getConfig()
.get(Status.Initialization).getConfFlag(); // throws an NPE

public static methodTobeCalledByOtherTestMethod(TestObject a){
...
 }
}

filed CONF_FLAG需要调用一些其他依赖,而这些依赖不可获得,当mock时会抛异常,可以使用:

@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassA.class})
@SuppressStaticInitializationFor("com.xxx.xxx.ClassA")
public class XXXTest {

    @Test
    public void testXXX() {
        PowerMockito.mockStatic(ClassA.class);
        ....
    }
}

使用SuppressStaticInitializationFor就不会去初始化CONF_FLAG。

 

另外其他忽略的配置请见:Suppress Unwanted Behavior

参考:What am I doing wrong mocking this private static final variable using mockito and reflection?

mock时忽略不必要的初始化

标签:etc   oid   his   variable   ted   wan   question   加载类   init   

原文地址:http://www.cnblogs.com/drizzlewithwind/p/7383676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!