1. javax.servlet-api 추가
WAS를 실행하지 않고 컨트롤러를 테스트하려면 pom.xml의 servlet 버전을 높여줘야 한다.
2. 소스 작성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | javpackage org.zerock.web; import static org.junit.Assert.fail; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @RunWith(SpringJUnit4ClassRunner.class) //@ContextConfiguration(locations = {"classpath:spring/root-context.xml"}) //DB쪽만 셋팅 @WebAppConfiguration @ContextConfiguration(locations = { "classpath:spring/*.xml" }) // DB쪽만 셋팅 public class SampleControllerTest { private static final Logger logger = LoggerFactory.getLogger(SampleControllerTest.class); @Autowired private WebApplicationContext ac; // 브라우저를 호출하는 객체 private MockMvc mockMvc; @Before public void setUp() throws Exception { // mockMvc객체에 WebAppConfiguration 주입 this.mockMvc = MockMvcBuilders.webAppContextSetup(this.ac).build(); } @Test public void test() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/doA")) ; } } | cs |
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
WebApplicationContext(웹 어플리케이션 환경설정 인터페이스)을 사용하는데 필요한 애너테이션
@ContextConfiguration(locations={"classpath:spring/*.xml"})
root-context.xml(DB), servlet.xml(MVC) 설정하는 xml을 모두 포함하기 위하여
MockMvc : 브라우저 요청&응답 객체
1 2 3 4 5 6 7 8 9 10 11 | @Before public void setUp() throws Exception { // mockMvc객체에 WebAppConfiguration 주입 this.mockMvc = MockMvcBuilders.webAppContextSetup(this.ac).build(); } @Test public void test() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/doA")) ; } | cs |
@Before: 애플리케이션 호출 전
1 | this.mockMvc = MockMvcBuilders.webAppContextSetup(this.ac).build(); | cs |
MockMvc 객체 생성(브라우저 요청&응답 객체)
1 | mockMvc.perform(MockMvcRequestBuilders.get("/doA")) ; |
perform()메서드를 실행하여 post/get방식의 호출로 웹 브라우저 "/doA"에 해당하는 URL 접근
※ 쿼리 스트링 넘기기
src>test>java>org>zerock>web>SampleControllerTest.java
src>main/java/org/zerock/web/SampleController.java
본 게시글은 코드로 배우는 스프링 웹 프로젝트 책을 참고하여 작성하였습니다.
본 게시글은 '빵굽는개발자 빵형'님의 '[스터디] 코드로배우는스프링 10 WAS없이 컨트롤러를 테스트하기' 동영상을 참고하여 작성하였습니다.
https://www.youtube.com/watch?v=2bPAd2nZI1k
'Develop > Spring' 카테고리의 다른 글
[06.스프링+MyBatis]3.XML Mapper의 작성 (0) | 2018.08.17 |
---|---|
[06.스프링+MyBatis]시작 (0) | 2018.08.17 |
[설정]스프링 기본 프로젝트 인코딩 변경 (0) | 2018.08.16 |
log4j.xml (0) | 2018.08.16 |
[스터디] 코드로배우는스프링 06 스프링과 MySQL을 연동 (0) | 2018.08.16 |
댓글