mockito 如何为OpenSearchClient API编写Java单元测试

djmepvbi  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(151)

我试图在Spring Java中为org.opensearch.client.opensearch.OpenSearchClient API(如msearch,bulk等)编写Junit测试,但我得到了编译错误。
被模拟的API签名是

public <TDocument> MsearchResponse<TDocument> msearch(MsearchRequest request, Class<TDocument> tDocumentClass)
            throws IOException, OpenSearchException

字符串
单元测试模拟方法的示例是:

Mockito.when(client.msearch(ArgumentMatchers.any(), ArgumentMatchers.any()))
            .thenReturn(mSearchResponse);


看到的错误消息如下所示'
方法msearch(MsearchRequest,Class)对于类型OpenSearchClient不明确
有人能指导,分享如何正确地模拟和测试OpenSearchClient API吗?

fsi0uk1n

fsi0uk1n1#

我通过将我的Mockito when-then语句改为下面的语句找到了解决方案;

Mockito.when(client.msearch(ArgumentMatchers.<MsearchRequest>any(), ArgumentMatchers.<Class<Map>>any())).thenReturn(mSearchResponse);

字符串
上面的Map是我期望我的Response封闭类型所在的。如果任何人的类型不同,那么他们可以用他们实际期望的类型替换相同的类型。上述问题为我解决了。
加油,编码快乐!

相关问题