Mockito when从句

xzlaal3s  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(84)

我想为以下语句创建一个Mockito 'when'子句:

boolean emailEmUso = userRepository.findByEmail(userDtoRequest.email())
                .stream()
                .anyMatch(c -> !c.equals(userDtoRequest));

字符串
有可能吗?

when(userRepository.findByEmail(userDtoRequest.email())
      .stream()
      .anyMatch(c -> !c.equals(userDtoRequest)))
      .thenReturn(false);

w41d8nur

w41d8nur1#

当编写需要某种形式的模拟或存根的集成测试时,您希望尽可能少地模拟以复制所需的行为。
具体来说,您通常不希望模拟任何底层JRE(或任何其他语言)功能(这超出了您的测试范围,并且并不总是容易实现)。stream()anyMatch()等是已经被广泛测试过的库函数,你的测试应该正常执行它们,这样你就可以验证你对这些函数的正确使用。
这样做的标准方法是模拟userRepository.findByEmail(userDtoRequest.email())的返回值,让代码的其余部分正常运行。

User user = new User(...);
when(userRepository.findByEmail(userDtoRequest.email())).thenReturn(user);

字符串

相关问题