提问人:Mohammad Shahwez 提问时间:10/5/2022 更新时间:10/5/2022 访问量:197
空指针异常 Mockito 参数不同 (WebTestClient Put bodyValue)
Null Pointer Exception Mockito Argument(s) are different (WebTestClient Put bodyValue)
问:
@Test
void checkPutProfileNotFound() {
ProfileDto profileDto = new ProfileDto("[email protected]", "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 对象替换为 any() ,则此错误将得到解决。我想知道我在测试用例中究竟在哪里犯了错误。
Argument(s) are different! Wanted:
com.example.profile.service.ProfileService#0 bean.putProfile(
ProfileDto([email protected], 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 protected], name=abcd, dob=null, number=null)
);
答:
0赞
Mohammad Shahwez
10/5/2022
#1
正如评论部分所指出的,添加 equals 方法解决了这个问题,因为需要它来比较 when() 和 verify() 中的对象。
评论
ProfileDTO
equals