spring.io 에서 제공하는 공식 레퍼런스를 바탕으로 spring test의 구조 및 작동 방식에 대해 알아보자.
스프링 공식 래퍼런스가 추천하는 방식은 JUnit을 활용한 테스트 방법이다.
스프링과 코드 간의 interactions을 테스트하는 것이 해당 공식 문서의 중점적인 내용이며 더 나아가 MockMvc를 이용하여 웹 레이어만 테스트 하는 것까지 알려준다.
Mockmvc - MockMvc는 웹 어플리케이션을 애플리케이션 서버에 배포하지 않고 테스트용 MVC환경을 만들어 요청 및 전송, 응답기능을 제공해주는 유틸리티 클래스다.내가 컨트롤러 테스트를 하고싶을 때 실제 서버에 구현한 애플리케이션을 올리지 않고(실제 서블릿 컨테이너를 사용하지 않고) 테스트용으로 시뮬레이션하여 MVC가 되도록 도와주는 클래스다!
스프링 어플리케이션을 위한 컨트롤러 생성
package com.example.testingweb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HomeController {
@RequestMapping("/")
public @ResponseBody String greeting() {
return "Hello, World";
}
}
Run the Application
Spring Initializr로 생성하면 자동적으로 메인메서드(main())를 제공해준다.
package com.example.testingweb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TestingWebApplication {
public static void main(String[] args) {
SpringApplication.run(TestingWebApplication.class, args);
}
}
해당 클래스 파일로 설계한 application을 구동시킬 수 있다.