Generics 使用mockito模拟具有不同供应商参数的方法调用

Generics 使用mockito模拟具有不同供应商参数的方法调用,generics,junit,mockito,matcher,supplier,Generics,Junit,Mockito,Matcher,Supplier,我试图模拟对一个方法的调用,该方法应根据调用它的特定供应商类型返回不同的内容。然而,使用ArgumentMatcher似乎不起作用,而且总是使用最新的定义。例如: when(translator.translate(eq(myObject), ArgumentMatchers.<Supplier<idClass>>any())) .thenAnswer(something); when(translator.translate(e

我试图模拟对一个方法的调用,该方法应根据调用它的特定供应商类型返回不同的内容。然而,使用ArgumentMatcher似乎不起作用,而且总是使用最新的定义。例如:

    when(translator.translate(eq(myObject), ArgumentMatchers.<Supplier<idClass>>any()))
            .thenAnswer(something);

    when(translator.translate(eq(myObject), ArgumentMatchers.<Supplier<PaginatedResult<someClass>>>any()))
            .thenAnswer(somethingElse);
when(translator.translate(eq(myObject)、ArgumentMatchers.any())
.然后回答(某事);
when(translator.translate(eq(myObject),ArgumentMatchers.any())
.然后回答(某件事);
翻译功能:

<T> T translate(MyObject myObject, Supplier<T> block) {
T翻译(MyObject MyObject,供应商块){

似乎不管供应商是什么,mockito最终使用了最新的“何时”定义(通过更改订单进行测试)。不确定我遗漏了什么。

您是否查看了关于堆栈溢出的这两个答案:和