传统的JMock是无法Mock静态方法的,但是Jmockit能够很好地Mock类的静态方法。假设CA类调用CB类的静态方法,
public class CA { public String execute(String key) { String className = CB.getProp(key); } }
public abstract class CB { public static String getProp(String key) { } }
mocket该方法可以在单元测试的setUp 方法新建Mock,如下:
new MockUp<CB>() { @Mock public void $clinit() { } @Mock public static String getProp(String key) { return "aty"; } };
新建一个MockUp对象,然后在尖括号中写明要Mock的类CB,在Mockup的域中,写两个方法,其中clinit是用于初始使用(我当初尝试的时候,不加上这个时运行会报错)。
原文地址:http://blog.csdn.net/aitangyong/article/details/40984987