在模拟具有复杂类型的方法时,在java中返回null
public void sendRequest(OnlineRequest request) {
OnlineResponse response = client.handleRequest(request);
System.out.println( response);
}
Mockito.when(client.handleRequest(request)).thenReturn(new OnlineResponse());
最佳答案
如果我理解正确,您的问题是 System.out.println(response);
打印 null
?
这很可能是因为 client.handleRequest()
没有按照您期望的 request
被调用。这可能是您未向我们提供的代码中的某个错误,或者可能只是由于 OnlineRequest
没有 equals/hash-code 的实现,因此 当()
永远不会被触发,因为它不是使用与您在单元测试中使用的完全相同的 OnlineRequest
实例来调用的。
您可能希望测试 handleRequest
是否使用您期望的对象进行调用。这可以使用 verify()
来完成:
verify(client).handleRequest(request);
在你的单元测试中。这也依赖于 equals/hash-code 实现来确定 request
是否是预期的参数。
关于java - 模拟具有复杂类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55855440/