gpt4 book ai didi

java - 模拟方法的本地对象并从中读取

转载 作者:行者123 更新时间:2023-12-01 16:13:07 26 4
gpt4 key购买 nike

我正在使用 powermckito 并尝试模拟本地对象并从中读取 API。我的实现类如下:

public class LogoutUtil {

public static void updateState() {
SrvcContext sc = new SrvcContext();
sc.setUserName("UserNAME");

}
}

我试图模拟 SrvcContext 对象并通过调用 getter 读取用户名。这是我的测试代码:

@Test
public void updateStateTest() {
SrvcContext svc = PowerMockito.mock(SrvcContext.class);
LogoutUtil.updateState();
try {
PowerMockito.whenNew(SrvcContext.class).withNoArguments().thenReturn(svc);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String userName = svc.getUserName(); //This gives null
Assert.assertEquals("UserNAME", userName);
}

任何帮助如何做到这一点。我无法更改 LogoutUtil 类。

谢谢

最佳答案

问题在于方法 LogoutUtil.updateState 是静态的,测试和模拟静态方法并不总是那么简单。但是使用 PowerMockito,您可以通过调用 mockStatic 方法来实现:看看 here :它应该可以解决您的问题

关于java - 模拟方法的本地对象并从中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62482184/

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