有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java模拟具有复杂类型的方法

模拟具有复杂类型的方法时,在java中返回null

public void sendRequest(OnlineRequest request) {
        OnlineResponse response = client.handleRequest(request);
        System.out.println( response);
}
Mockito.when(client.handleRequest(request)).thenReturn(new OnlineResponse());

共 (1) 个答案

  1. # 1 楼答案

    如果我理解正确,你的问题是System.out.println(response);打印null

    这很可能是因为client.handleRequest()没有使用您期望的request调用。这可能是您没有提供给我们的代码中的某个地方出现了错误,或者可能只是因为OnlineRequest没有equals/hash代码的实现,所以when()永远不会被触发,因为它不是使用与单元测试中使用的OnlineRequest完全相同的实例调用的

    您可能希望测试handleRequest是否使用您期望的对象调用。这可以通过verify()实现:

    verify(client).handleRequest(request);
    

    在单元测试中。这也取决于equals/hash代码实现,以确定request是否为预期参数