gpt4 book ai didi

java - 如何为使用新的内部函数创建对象的java类编写junit测试?

转载 作者:行者123 更新时间:2023-12-01 16:19:49 25 4
gpt4 key购买 nike

我有一个java类,我必须为其编写junit测试。该类是在用于调用另一个方法的参数上创建的。由于同一对象的差异引用,测试失败。

public MyClass {
public MyResult myMethod(String a, String b, String c) {
MyRequest m = new MyRequest();
m.setA(a);
m.setB(b);
m.setC(c);
MyResult ms = myService.getResult(m);
log(ms);
return ms;
}
}

这是测试类。

@PrepareForTest({ MyService.class, MyClass.class })
public class MyClassTest {
@InjectMocks
MyClass myClass;

@Mock
MyService myService;

@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}

@Test
public void myMethod() {
String a = "a", b="b", c="c";
MyRequest m = new MyRequest();
m.setA(a);
m.setB(b);
m.setC(c);

MyResult response = mock(MyResult.class);
when(myService.getResult(m)).thenReturn(response);

MyResult result = myClass.myMethod(a, b, c);
assertNotNull(result);
}

最佳答案

您可以尝试以下 Mockito 设置。它将接受 MyRequest 类并执行您的代码。

Mockito.when(myService.getResult(Mockito.any(MyRequest.class))).thenReturn(new MyResult());

关于java - 如何为使用新的内部函数创建对象的java类编写junit测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62304814/

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