spring MVC 테스트에서 예상된 결과를 검증하는데 사용되는 메서드이다. 테스트를 통해 예상한 값과 실제 값이 일치하는지 확인한다.
테스트의 예상되는 결과를 명시적으로 정의하여 코드의 의도를 명확히 전달이 가능하다.
개발자는 테스트를 더 직관적으로 이해하고 디버깅 할 수 있다.
과도한 사용은 코드의 가독성을 저하시킬 수 있다.
너무 많은 검증은 테스트 케이스를 더 복잡하게 만들 수 있다.
테스트가 실패할 때 어떤 부분이 문제인지 정확히 파악하기 어렵다
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
@RunWith(SpringRunner.class)
@WebMvcTest(HomeController.class)
public class HomeControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testHomePage() throws Exception {
mockMvc.perform(get("/"))
.andExpect(status().isOk()) // HTTP 200 OK 상태 코드를 기대
.andExpect(content().string("Hello World")); // 응답 본문이 "Hello World"와 일치하는지 확인
}
}
andExpect는 테스트가 루트 URL에 대해 실행되었을 때 HTTP 상태 코드가 200인지 확인하고,
응답 본문이 "Hello World"와 일치하는지 확인합니다.
이를 통해 개발자는 예상한 대로 응답이 수행되었는지를 확인할 수 있다.
Status : HTTP 응답의 상태를 확인
Content : 응답 본문을 확인
View : 뷰 이름을 확인
Redirection : 리다이렉션을 확인
Model Attributes: 모델 속성을 확인