gpt4 book ai didi

java - 如何模拟类的实例变量?

转载 作者:行者123 更新时间:2023-11-30 07:16:14 24 4
gpt4 key购买 nike

我如何模拟在类级别实例化的变量..我想模拟 GenUser、UserData。我该怎么做...

我有以下类(class)

public class Source {

private GenUser v1 = new GenUser();

private UserData v2 = new UserData();

private DataAccess v3 = new DataAccess();

public String createUser(User u) {
return v1.persistUser(u).toString();
}
}

我怎么 mock 我的v1是这样的

GenUser gu=Mockito.mock(GenUser.class);
PowerMockito.whenNew(GenUser.class).withNoArguments().thenReturn(gu);

我为单元测试和模拟编写的是

@Test
public void testCreateUser() {
Source scr = new Source();
//here i have mocked persistUser method
PowerMockito.when(v1.persistUser(Matchers.any(User.class))).thenReturn("value");
final String s = scr.createUser(new User());
Assert.assertEquals("value", s);
}

即使我模拟了 GenUser v1 的 persistUser 方法,它也没有返回“值”作为我的返回值。

提前致谢......:D

最佳答案

如 fge 的评论:

All usages require @RunWith(PowerMockRunner.class) and @PrepareForTest annotated at class level.

确保你正在使用那个测试运行器,并且你把 @PrepareForTest(GenUser.class) 放在你的测试类上。

(来源:https://code.google.com/p/powermock/wiki/MockitoUsage13)

关于java - 如何模拟类的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185700/

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