@Test
void checkPutProfileNotFound() {
ProfileDto profileDto = new ProfileDto("abcd@gmail.com", "abcd", null, null);
when(profileService.putProfile(profileDto)).thenReturn(Mono.error(new NotFoundException()));
webTestClient.put().uri("/profile/put")
.bodyValue(profileDto)
.exchange();
verify(profileService, times(1)).putProfile(profileDto);
}
出现空指针异常,并显示以下错误。如果我用when()和verify()中的任意()替换profileDto对象,此错误将得到解决。我想了解我在测试用例中到底在哪里出错。
Argument(s) are different! Wanted:
com.example.profile.service.ProfileService#0 bean.putProfile(
ProfileDto(email=abcd@gmail.com, name=abcd, dob=null, number=null)
);
-> at com.example.profile.controller.ProfileControllerTest.checkPutProfileNotFound(ProfileControllerTest.java:115)
Actual invocations have different arguments:
com.example.profile.service.ProfileService#0 bean.putProfile(
ProfileDto(email=abcd@gmail.com, name=abcd, dob=null, number=null)
);
1条答案
按热度按时间j8ag8udp1#
正如在注解部分中指出的,添加equals方法解决了这个问题,因为它是比较when()和verify()中的对象所需要的。