이제 controller도 잘  작동되는지 테스트......

앞선 과정은 이미 했고.......test 폴더에 한개 더 만든다.

 

 

이땐 controllerTest 클래스는 그냥 클래스 파일이다. 어차피 다 그냥 타이밍 해서 설치할게 없었다고 하셨다.

 

 

 

 

 

 

package com.kh.junspring.member;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
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.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
//Controller 및 웹환경에서 사용되는 빈을 자동 생성 등록
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"file:src/main/webapp/WEB-INF/spring/root-context.xml"
		, "file:src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml"})
public class MemberControllerTest {
	
	@Autowired
	private WebApplicationContext wac;   //context ==객체에 대한 정보가 들어가 있다. 테스트를 위한 준비 객체

	private MockMvc mockMvc;
	
	@Before //JUINT껄로 임포트
	public void setup() {
		//mockMvc 사용하기 위해 builder와 wac객체를 이용하여 setup!
		this.mockMvc=MockMvcBuilders.webAppContextSetup(this.wac).build();
	}
	@Test
	public void testMemberRegister() throws Exception{
		try {
			//mockMuc.perform(post(url)) ...perform 어떤 메소드,,, 어떤 url인가를 지정하는 것
			mockMvc.perform(post("/memberRegister.do")
					.param("userId","khadmin")
					.param("passwd","qwer1234")
					.param("name","김경호")
					.param("email","khadmin.com")
					.param("tel","01099998888"))
			.andDo(print())  //andDo 결과 확인을 위해...print 콘솔에 출력
			.andExpect(status().isOk());  //성공 할꺼를 예상하고 결과값중에 출력란것..		
					
		} catch (Exception e) {
			
		}
	}
	

}

Mockmvc는 MVC패턴의 모조품같은것으로 TEST를 하기위한 객체라고 함...

 

이미 만들었던 memberController가 복잡해서 간단하게 한게 더 만들었다.

 

public class MemberController {
	@Autowired
	private MemberService mService;

	//text를 위한 메소드
	@RequestMapping(value="/memberRegister.do", method=RequestMethod.POST)
	public ModelAndView memberRegister(ModelAndView mv
			, @RequestParam("userId") String userId
			, @RequestParam("passwd") String passwd
			, @RequestParam("name") String name
			, @RequestParam("email") String email
			, @RequestParam("tel") String tel) {
		Map<String, String> paramMap =  new HashMap<String, String>();
		paramMap.put("userId", userId);
		paramMap.put("passwd", passwd);
		paramMap.put("name", name);
		paramMap.put("email", email);
		paramMap.put("tel", tel);
		
		int result = mService.registerMember(paramMap);
		String str="";
		if(result > 0) {
			str="회원가입 성공!";
		}else {
			str="회원가입 실패!";
		}
		mv.addObject("msg", str);
		mv.setViewName("common/errorPage");
		return mv;
	}

같은 메소드에 멤버변수를 변경해서 진행.......가능하게 만드는 건 오버로드....(복습)^^

db까지 가지는 않게 stoerLogic에서 그냥 리턴값 1로 만들어서 진행됨.

결과내용은 콘솔에 띄어줌.

MockHttpServletRequest:
      HTTP Method = POST
      Request URI = /memberRegister.do
       Parameters = {userId=[khadmin], passwd=[qwer1234], name=[김경호], email=[khadmin.com], tel=[01099998888]}
          Headers = []
             Body = <no character encoding set>
    Session Attrs = {}

Handler:
             Type = com.kh.junspring.member.controller.MemberController
           Method = public org.springframework.web.servlet.ModelAndView com.kh.junspring.member.controller.MemberController.memberRegister(org.springframework.web.servlet.ModelAndView,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)

Async:
    Async started = false
     Async result = null

Resolved Exception:
             Type = null

ModelAndView:
        View name = common/errorPage
             View = null
        Attribute = modelAndView
            value = ModelAndView [view="common/errorPage"; model={msg=회원가입 성공!}]
           errors = []
        Attribute = msg
            value = 회원가입 성공!

FlashMap:
       Attributes = null

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = [Content-Language:"en"]
     Content type = null
             Body = 
    Forwarded URL = /WEB-INF/views/common/errorPage.jsp
   Redirected URL = null
          Cookies = []

일단 잘 출력된다.. 감사하다^^

'SPRING' 카테고리의 다른 글

이클립스 부트 mariaDB설치 ...에러백만돌이  (0) 2023.05.19
LOG를 대체하는 logger  (0) 2022.11.10
LOG4j 등록  (0) 2022.10.11
AOP를 이용한 트랜젝션  (0) 2022.10.11
예외처리 어노테이션  (0) 2022.10.07

+ Recent posts