有 Java 编程相关的问题?

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

mocking Mockito Java 8参数匹配器any(类<T>)

我需要把课程交给论点匹配者。这就是我正在做的事情,我的匹配应该返回object apiResponse,它不是空的,因为我正在创建它并传递它。但是,它似乎并不是在注射;我收到的是空的

我也尝试过ArgumentMatchers。eq(ApiResponse.class),Mockito。eq(ApiResponse.class),ArgumentMatchers。any(ApiResponse.class)和Mockito。任何(ApiResponse.class)

和辩手在一起。any(ApiResponse.class)和Mockito。任何(ApiResponse.class),代码甚至不会编译,并且使用ArgumentMatchers。eq(ApiResponse.class),Mockito。eq(ApiResponse.class),我在另一侧接收空值。请建议

      ApiResponse apiResponse = new ApiResponse();
      apiResponse.setErrcode("0");
      apiResponse.setNum_fields_changed("1");
      Mockito.when(xmlResponseMapper.parseXMLToObject(any(String.class),ArgumentMatchers.eq(ApiResponse.class))).thenReturn((apiResponse));

这是我在课堂上使用这个匹配器的地方

  apiResponse = xmlResponseMapper.parseXMLToObject(response.getBody(), ApiResponse.class);

我做错什么了吗?我正在使用Java8


共 (1) 个答案

  1. # 1 楼答案

    问题解决了。问题其实不在ArgumentMatchers身上。eq(ApiResponse.class),但是使用字符串,第一个参数被传递到匹配器中

      Mockito.when(xmlResponseMapper.parseXMLToObject(any(String.class),ArgumentMatchers.eq(ApiResponse.class))).thenReturn((apiResponse));
    

    我将null作为第一个参数传递。一旦我传递了一个虚拟字符串,一切都很顺利,我在另一边收到了一个响应