mockito 空指针异常错误模拟参数不同(WebTestClient Put bodyValue)

qqrboqgw  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(178)
@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)
);
j8ag8udp

j8ag8udp1#

正如在注解部分中指出的,添加equals方法解决了这个问题,因为它是比较when()和verify()中的对象所需要的。

相关问题