Java Mockito:如何根据方法的一个参数模拟方法的结果?

Java Mockito:如何根据方法的一个参数模拟方法的结果?,java,spring,mockito,jooq,Java,Spring,Mockito,Jooq,是否有一种方法可以将参数传递给模拟函数并在其中使用该参数值。示例(注意名称为param): when(clientRepo.registerNewClient(Mockito.any(String.class)作为名称)) .然后返回( dslContext .insertInto(客户) .set(CLIENT.CLIENT_NAME,NAME) .execute()); 有办法吗?您需要使用然后回答,并从调用锁中获取参数 final Repo clientRepo=Mockito.mock(

是否有一种方法可以将参数传递给模拟函数并在其中使用该参数值。示例(注意名称为param):

when(clientRepo.registerNewClient(Mockito.any(String.class)作为名称)) .然后返回( dslContext .insertInto(客户) .set(CLIENT.CLIENT_NAME,NAME) .execute());
有办法吗?

您需要使用
然后回答
,并从
调用锁中获取参数

final Repo clientRepo=Mockito.mock(Repo.class);
Mockito.when(clientRepo.registerNewClient(Mockito.any(String.class)))
.然后回答(
(答复)
调用锁->新客户端(
调用锁
.getArgumentAt(0,String.class)
.toUpperCase()
)
);
断言(
clientRepo.registerNewClient(“fff”)、新客户(“fff”)
);

也许你想用间谍来代替这种情况下的模拟。是代码> dSLeValue.EntUpToin(…< /代码>什么是真正的clicliPO对象?如果是的话,阿尔弗雷多是正确的,间谍是走的路。如果不是,你可以考虑在CcliTePO接口的测试实现中的布线,在你的测试中实现你想要的。 Mockito.when(clientRepo.registerNewClient(Mockito.any(String.class) as name)) .thenReturn( dslContext .insertInto(CLIENT) .set(CLIENT.CLIENT_NAME, name) .execute());