java如何将param传递给模拟类方法?
我正在使用mockito测试mu jdk11 springboot应用程序
我的应用程序有一个类'ClientRepository',它有一个名为'findById'的方法,该方法采用UUID类型的参数
所以这个方法看起来像:
public String findById(UUID id)
现在我嘲笑这个班来测试:
@MockBean
private ClientRepository clientRepo;
现在,我想弄清楚如何在这里传递UUID参数:
Mockito.when(clientRepo.findById(UUID id))
.thenReturn(dslContext.selectFrom(CLIENT).where(CLIENT.ID.eq(UUID.fromString("3e064b19-ef76-4aea-bf82-e9d8d01daf1c"))).fetch());
有人能帮忙吗
# 1 楼答案
直接传递模拟预期返回的值也应该有效
# 2 楼答案
如果你的模拟应该只对特定的值做出反应,那么就使用
Mockito.eq("your-uuid-goes-here")
# 3 楼答案
可以使用以下构造:
如果预期的UUID与您在测试中配置的实例不同,这可能是一个很好的解决方案
还有一点需要考虑:
您似乎使用了JOOQ,但有一个用于存储库的模拟bean,这意味着您可能要测试某种服务(业务逻辑层)。 在这种情况下,您可能根本不需要使用数据库,只需创建一个字符串并返回模拟配置的
thenReturn
部分