mvc.perform(post("/api/orders")
.contentType(MediaType.APPLICATION_JSON)
.content(om.writeValueAsString(new CreateOrderRequest("pen", 2))))
.andExpect(status().isCreated())
.andExpect(jsonPath("$.id").value(100));
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class OrderApiE2ETest {
@Autowired TestRestTemplate rest;
@Test
void createOrder_201() {
var req = new CreateOrderRequest("pen", 2);
var response = rest.postForEntity("/api/orders", req, OrderResponse.class);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.CREATED);
assertThat(response.getBody().status()).isEqualTo("CREATED");
}
}
내부 API 동작만 빠르게 검증 -> MockMvc
실제 API 엔드포인트를 클라이언트처럼 호출/검증 -> TestRestTemplate