Создайте объект JSON для публикации в тестах Spring Boot.

Я хочу написать базовый тест для выполнения запроса POST по URL-адресу /users с полезной нагрузкой JSON для создания пользователя. Я не могу найти, как преобразовать новый объект в JSON, и до сих пор это так, это явно неправильно, но объясняет цель:

@Test public void createUser() throws Exception {
    String userJson = new User("My new User", "[email protected]").toJson();
    this.mockMvc.perform(post("/users/").contentType(userJson)).andExpect(status().isCreated());

person Maciej Szlosarczyk    schedule 07.03.2016    source источник


Ответы (1)


Вы можете использовать сопоставитель объектов Джексона, а затем пользовательский метод writeValueAsString.

So

@Autowired
ObjectMapper objectMapper;

// or ObjectMapper objectMapper = new ObjectMapper(); this with Spring Boot is useless


    @Test public void createUser() throws Exception {
        User user = new User("My new User", "[email protected]");
        this.mockMvc.perform(post("/users/")
                .contentType(MediaType.APPLICATION_JSON)
                .content(objectMapper.writeValueAsString(user)))
                .andExpect(status().isCreated());
    }

Я надеюсь это тебе поможет

person Valerio Vaudi    schedule 07.03.2016
comment
Как раз то, что я искал :О) - person chocksaway; 07.10.2017
comment
Вы можете взглянуть на мой пост с вашим пониманием? stackoverflow. ком/вопросы/63312481/ - person IHaveAQuestion; 10.08.2020
comment
@IHaveAQuestion Я очень смущен вашим вопросом, вы решили? мне как-то не понятно я что-то спросил в комментарии к твоему вопросу - person Valerio Vaudi; 11.08.2020