우선 테스트를 위해 src/main/java
하위에 패키지에 자신의 패키지를 생성하고 간단한 Controller를 하나 생성한다.
테스트 코드를 작성하는 곳은 src/test/java
하위에 패키지를 생성하고 클래스를 생성한다.
그 후 아래와 같이 테스트 코드를 작성하고 hello가_리턴된다()
왼쪽에 있는 실행버튼을 클릭하여 실행한다.
위에서 만든 Controller의 경로와 동일하게 패키지 구조를 생성해야 합니다. 예를들어 Controller의 경로가
src/main/java/web/
이라면 테스트 코드를 작성하기 위한 클래스의 경로는src/test/java/web/
이어야 합니다.
@RunWith(SpringRunner.class)
SpringRunner
라는 스프링 실행자를 이용한다.@WebMvcTest
@Controller
, @ControllerAdvice
등을 사용할 수 있다.@Service
, @Component
, @Repository
등은 사용할 수 없다.private MockMvc mvc
GET
, POST
등에 대한 API를 테스트 할 수 있다.mvc.perform(get("hello))
.andExpect(status().isOk())
mvc.perform
의 결과를 검증한다..andExpect(content().string(hello))
mvc.perform
의 결과를 검증한다.실행결과가 위와 같이 나온다면 테스트가 정상적으로 진행된 것입니다.
(콘솔 좌측 상단에 Test Passed라는 문구가 출력되어야 합니다)
IDE를 이클립스를 이용하다가 최근에 인텔리제이로 전환하고 있는데 테스트를 하던 중 위와같은 에러가 발생했다.
나처럼 인텔리제이가 아직 어색한 사람이 위와 같은 에러를 만날 수 있다고 생각하여 해결방법을 공유하려고 한다.
Settings(Crlt + Alt + S) - build tools - Gradle
로 이동Build and run using
과 Run tests using
이 Gradle로 설정되어 있는데 두 개 모두 intellij IDEA
로 변경한다.