3.5 Faking类初始化过程

作者: 孙兴斌 | 来源:发表于2016-12-30 11:22 被阅读28次

    如果某个类在需要在static块中完成一些初始化工作,而在测试时希望忽略掉这些初始化,就需要使用$clinit方法来fake类初始化过程。

    public class Dependency {    
    
        //static赋值会被忽略
        public static String staticField = "staticField will not be initialized";
        
        //final可以赋值
        public static final String finalField = "finalField will be initialized";    
        
        //static语句块不会执行
        static {
            staticField = "staticField will not be initialized";    
        }
    }
    
    @Testpublic void TestMethod() {
        new MockUp<Dependency>() {
            @Mock
            void $clinit(){}
        };
        assertNull(new Dependency().staticField);
        assertNull(new Dependency().finalField);
    }
    

    相关文章

      网友评论

        本文标题:3.5 Faking类初始化过程

        本文链接:https://www.haomeiwen.com/subject/rflmvttx.html