传统的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