JAVA/SPRING

[SPRING]MockMvc를 이용한 테스트

gracelove91 2019. 7. 28. 17:34

controller 코드. get으로 "/api/helloworld" 요청이 들어오면 "HELLO WORLD!"를 반환한다.

위와 같은 컨트롤러가 있다. 테스트코드는 아래와 같다.

컨트롤러객체를 주입받고, 해당컨트롤러의 helloWorld()를 실행했을 때 리턴값이 "HELLO WORLD!"면 테스트를 성공하는 코드.
테스트 성공!

테스트는 성공, 하지만 문제가 있는 테스트코드.

우리가 알고싶은 건 위 코드와 같은 helloWorld() 메소드를 실행했을 때의 리턴값이 "HELLO WORLD!"인지가 아니라,

GET /api/helloworld 요청에 대한 응답이 "HELLO WORLD!"인지 알고싶은 것.

근데 웹 요청에 대한 테스트는 어떻게? MockMvc를 이용하자

MockMvcRequestBuilders.get("/api/helloworld") 

/api/helloworld 에 get방식으로 요청을 보낸다.
.andDo(MockMvcResultHandlers.print()) 요청에 대한 응답을 MockResultHandlers.print() 메서드를 통해 콘솔에 출력한다.
.andExpect(MockMvcResultMatchers.status().isOk()) status 코드가 200임을 확인한다
.andExpect(MockMvcResultMatchers.content().string("HELLO WORLD!")); 결과의 컨텐트가 String형 HELLO WORLD!인지 확인한다

테스트 모두 통과!( 실패 케이스 먼저 작성할 것. )


 

 

 

테스트 클래스의 import목록.