У меня есть следующий контроллер, который принимает почтовый запрос и возвращает объект ответа с телом
@RestController
public class UserController {
@Autowired
private UserService UserService;
@RequestMapping(value = "/all", method = POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<ResponseUser>> navigationTree(@RequestBody(required=false) UserDataRequest request) {
return UserService.sendEntries(request);
}
}
Это тест, который я написал для него:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class UserControllerTest {
private MockMvc mockMvc;
@MockBean
private UserService UserServiceMock;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() {
this.mockMvc = webAppContextSetup(webApplicationContext).build();
}
@Test
public void returnTopLevel() throws Exception {
String expectedJson = "[{\"id\":\"11\",\"name\":\"11\"},{\"id\":\"22\",\"name\":\"22\"}]";
MvcResult result = this.mockMvc.perform(post("/all")
.contentType(MediaType.APPLICATION_JSON)
.content("")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andReturn();
String actualJson = result.getResponse().getContentAsString();
// System.out.println(result);
//assertThat(Objects.equals(expectedJson, actualJson)).isTrue();
verify(UserServiceMock,times(1)).sendEntries(null);
}
}
Я хочу сравнитьстрока, полученная в теле ответа на ожидаемую строку.
- Я попытался сравнить строку, но она не работает
Ошибки:
assertThat(Objects.equals(expectedJson, actualJson)).isTrue();
и actualjson равенпусто.
Каковы другие способы?