Я пытаюсь проверить свой контроллер покоя, у меня в контроллере есть следующий метод:
@PostMapping("/auth/signup")
public ResponseEntity<RestResponse> registerUser(@Valid @RequestBody SignUpRequest signUpRequest,
UriComponentsBuilder uriComponentsBuilder) {
RestResponse restResponse = this.userService.register(signUpRequest);
UriComponents uriComponents = uriComponentsBuilder.path("/users").buildAndExpand();
return ResponseEntity.created(uriComponents.toUri()).body(restResponse);
}
Когда я запускаю конечную точку в почтальоне, я получаю следующий ответ:
{
"status": "Created",
"code": 201,
"message": "User registered successfully",
"result": "5bcf8a0487b89823a8ba5628"
}
в моем тестовом классе у меня есть следующее:
@RunWith(MockitoJUnitRunner.class)
public class UserControllerTest {
private MockMvc mockMvc;
@Mock
private UserService userService;
@InjectMocks
private UserController userController;
private SignUpRequest signUpRequest;
private String signupJson;
@Before
public void setUp() {
// initialise signUpRequest object with dummy data
this.signUpRequest = DummyData.dummySignupRequest();
// initialise signUpRequest object with dummy data
this.signupJson = "{\"name\":\"Ayoub Khial\",\"email\":\"Ayouub.Khial@gmail.com\",\"password\":\"123456\"}";
mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
}
@Test
public void justATest() throws Exception {
RestResponse restResponse = new RestResponse<>(HTTPCode.CREATED.getValue(), HTTPCode.CREATED.getKey(),
"User registered successfully", null);
given(this.userService.register(this.signUpRequest)).willReturn(restResponse);
MockHttpServletResponse response = mockMvc.perform(post("/api/auth/signup")
.contentType(MediaType.APPLICATION_JSON)
.content(signupJson))
.andReturn()
.getResponse();
System.out.println(response.getContentAsString());
}
}
Когда я регистрирую response.getStatus()
, я получаю 201, что правильно, но если я проверяю response.getContentAsString()
, я получаю пустую строку.
Итак, вопрос здесь, как проверить JSON в ответе?