addExpect

인철·2023년 10월 24일
0

Spring

목록 보기
48/48
post-thumbnail
post-custom-banner

addExpect

정의

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 응답의 상태를 확인

  • status().isOk() : HTTP 상태 코드가 200인지 확인
  • status().isNotFound() : HTTP 상태 코드가 404인지 확인
  • status().is(int) : 주어진 HTTP 상태 코드와 일치하는지 확인

Content : 응답 본문을 확인

  • content().string("문자열") : 응답 본문이 지정한 문자열과 일치하는지 확인
  • content().json("expectedJSON") : JSON 응답 본문이 지정한 JSON과 일치하는지 확인
  • content().contentType("text/html") : 응답의 콘텐츠 유형이 지정한 유형과 일치하는 지확인

View : 뷰 이름을 확인

  • view().name("이름") : 렌더링된 뷰의 이름과 지정한 뷰 이름과 일치하는지 확인

Redirection : 리다이렉션을 확인

  • redirectedUrl("URL") : 요청이 지정한 URL로 리다이렉트되는지 확인

Model Attributes: 모델 속성을 확인

  • model().attributeExists("attributeName") : 지정한 이름의 모델 속성이 존재하는지 확인
  • model().attribute("attributeName", "expectedValue") : 지정한 이름과 값의 모델 속성이 있는지 확인
profile
같은글이있어도양해부탁드려요(킁킁)
post-custom-banner

0개의 댓글