mockito 单元测试Spring问题

rjzwgtxy  于 2022-11-08  发布在  Spring
关注(0)|答案(1)|浏览(184)

我正在尝试学习如何用java 8在 Spring 进行单元测试/ mockito测试,但遇到了一些问题。我正在尝试测试我的方法findUserById,但它一直运行false。可选类型问题是一个问题,但可能已经解决了这些问题。然而,它仍然运行false。我的其他测试工作,所以只有这一个测试是顽固的。我将感谢您的帮助。
第一个

4ioopgfo

4ioopgfo1#

我相信在你的Controller.findUserById方法中你指的是ResponseEntity.of(...)而不是ResponseEntity.ok(...),因为UserService.findUserById返回Optional<User>。所以假设是这样的话,我可以在你的测试中看到至少两个(潜在的)问题:
1.您正在Assert两个不同的类型。expectedUser的类型是User,而service.findUserById返回的实际用户是Optional<User>。即使Optional<User>的底层值与expectedUser相同,它们也永远不会相等。我认为,IDE应该突出显示它,除非禁用了某些检查。
1.不确定是否正确定义了User.equalsUser.hashCode。乍一看,即使您修复了第一个点,您的testUserexpectedUser也可能不相等,除非这些方法仅基于User.id,而忽略了其他字段,如emailpasswordname等。

相关问题