티스토리 뷰

스프링, 자바

mocMvc Controller Test

killog 2020. 11. 18. 11:49
반응형

shinsunyoung.tistory.com/52

 


@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")                         
@FixMethodOrder(MethodSorters.NAME_ASCENDING)   //실행 순서를 메소드 명 순서로 고정
public class SignControllerTest { 
/*
		**회원가입 콘트롤러 테스트코드 (응답이 내가 원하는 형태로 오는지 테스트함)**
			**[ 내 목표 ]**
			- 로그인 되나
			- 필수 인자가 없이 회원가입을 하면  500에러가 나는가

*/

    @Autowired
    private MockMvc mockMvc;
/*
	실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서
	애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있다.
*/
    @Before // 원래 이렇게 안하는데 갑자기 테스트용 디비 sql 이 꼬여서..  before 어노테이션으로 회원가입해봅시다.
    public void signup() throws Exception {
        final MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("userEmail", "test@test.com");
        params.add("password", "password");
        params.add("mobilePhoneNumber", "01084");

        mockMvc.perform(post("/signup")
                .params(params)).andExpect(status().isOk());
    }

@Test
public void signupFailByLackRequestParam() throws Exception {
        final MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
		    params.add("userEmail", "test2@test.com");
        //   params.add("password", "password"); 필수인자 x
        params.add("mobilePhoneNumber", "0100000000");
        mockMvc.perform(post("/signup")
                .params(params)).andExpect(status().isInternalServerError());
    }

    @Test
    public void login() throws Exception {
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("userEmail", "test@test.com");
        params.add("password", "password");
        mockMvc.perform(post("/login").params(params))
                .andDo(print())
                .andExpect(status().isOk()) // 응답을 검증하는 역할
                .andExpect(jsonPath("$.msg").exists())
                .andExpect(jsonPath("$.data").exists())
                .andReturn();

    }

}

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함