MockMvc не возвращает созданный ресурс в ответе - PullRequest
0 голосов
/ 07 февраля 2019

Обычно, когда вы отправляете сообщение в конечную точку отдыха данных пружины, ответ содержит заголовок местоположения с URL-адресом вновь созданного ресурса и представлением json нового ресурса в его теле.

Но когда я публикую вMockMvc вроде следующего:

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderRestTest {

    @Autowired
    private ObjectMapper objectMapper;

    @Autowired
    private WebApplicationContext context;

    @Autowired
    private OAuthHelper oAuthHelper;

    private MockMvc mockMvc;

    @Before
    public void setup() {

        mockMvc = MockMvcBuilders
                .webAppContextSetup(context)
                .apply(springSecurity())
                .build();

    }

    @Test
    public void testSuperuserCanCreateOrder() throws Exception {

        RequestPostProcessor accessToken = oAuthHelper.addBearerToken("someSuperUser", "ROLE_SUPERUSER");

        Order order = new Order();
        order.salesMemo = "some sales memo";

        String responseFromTestRestTemplate = objectMapper.writeValueAsString(order);
        assertNotNull(responseFromTestRestTemplate);

        mockMvc.perform(
                post("/ErPApI/orders")
                        .with(accessToken)
                        .content(objectMapper.writeValueAsString(order))
                        .contentType(MediaType.APPLICATION_JSON))
                .andExpect(status().is2xxSuccessful());

        mockMvc.perform(
                get("/ErPApI/orders")
                        .with(accessToken))

                .andExpect(jsonPath("_embedded.orders", hasSize(1)))
                .andExpect(jsonPath("_embedded.orders[0].salesMemo", is("some sales memo")))

                .andReturn();


    }

}

сообщение успешно, но тело ответа пустое.Есть ли способ имитировать реальный ответ с помощью MockMvc?У меня неправильная настройка?

1 Ответ

0 голосов
/ 07 февраля 2019

установите заголовок Accept на application/json в запросе.

...