2
模擬方法鏈我要嘲笑下面的代碼:使用PowerMock與返回值
int num = MySingelton.getInstance().getA().getB().getC();
返回一個僞造的號碼。我該如何使用PowerMock & EasyMock \ Mockito?
模擬方法鏈我要嘲笑下面的代碼:使用PowerMock與返回值
int num = MySingelton.getInstance().getA().getB().getC();
返回一個僞造的號碼。我該如何使用PowerMock & EasyMock \ Mockito?
是可能的。我使用PowerMockito爲您創建了一個示例代碼。
創建一個單獨的類..
public class SingletonClassUtil
{
private static SingletonClassUtil singletonClassUtil;
private SingletonClassUtil(){}
private String name;
public static SingletonClassUtil getInstance()
{
if(singletonClassUtil!=null)
{
singletonClassUtil = new SingletonClassUtil();
}
return singletonClassUtil;
}
public String getA()
{
return name;
}
}
現在使用PowerMock測試類..
public class SingletonTest
{
public void testSingleton() throws Exception
{
PowerMockito.suppress(PowerMockito.constructor(SingletonClassUtil.class));
PowerMockito.mockStatic(SingletonClassUtil.class);
SingletonClassUtil singletonClassUtil = PowerMockito.mock(SingletonClassUtil.class);
PowerMockito.when(singletonClassUtil.getA()).thenReturn("A");
System.out.print(singletonClassUtil.getA());
// add your code here to access inner class methods
}
}
投票我,如果它可以幫助你