MockMvc 삽입 오류
컨트롤러의 간단한 동작 테스트 중에 MockMvc가 주입되지 않아서 삽질했습니다…
오류 상황
“자동으로 연결할 수 없습니다”, “‘MockMvc’ 유형의 빈을 찾을 수 없습니다”라는 오류가 발생합니다.
찾아보니 IntelliJ에서 발생하는 단순 오류인 것 같습니다.
Inspection “Incorrect automatic wiring of the injection point in the Spring Bean components” – Suppress 옵션을 Field에 설정하면 다음과 같이 표시됩니다.
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Autowired
private MockMvc mvc;
@SuppressWarnings 주석이 달려 있으며 특정 실패 지점을 무시할 수 있습니다.
어떤 분들은 IntelliJ를 쉽게 업데이트할 수 있다고 하는데, 위의 방법으로 해결했고 정상적으로 동작하는 것을 확인했습니다.
무엇을 가져올 것인가
컨트롤러 테스트 코드를 작성할 때 다음 코드를 선언하여 MockMvc의 get 및 post 메서드의 content(), status() 및 expect()를 가져오기만 하면 됩니다.
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
jsonPath를 사용할 때와 비교
.andExpect(jsonPath("$.name", is(name)))
.andExpect(jsonPath("$.amount", is(amount)));
is here를 사용하려면 아래 코드를 직접 가져와야 합니다.
import static org.hamcrest.Matchers.is;