使用Jmockit完成static方法的mock

传统的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是用于初始使用(我当初尝试的时候,不加上这个时运行会报错)。

 


 

你可能感兴趣的:(static,jmockit,mock静态方法)