gpt4 book ai didi

testing - 使用 PowerMock 模拟具有返回值的方法链

转载 作者:行者123 更新时间:2023-11-28 20:12:10 25 4
gpt4 key购买 nike

我想模拟以下代码:

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
}
}

如果对你有帮助,请投我一票

关于testing - 使用 PowerMock 模拟具有返回值的方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16937550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com