프로그래밍/Spring

@Validated 테스트 코드 작성

Baesj 2021. 11. 1. 17:00

비밀번호 범위를 테스트하자

 

Member라는 클래스를 작성

public class Member {

    @NotNull
    @Length(max = 30)
    private String memberId;
    @NotEmpty
    @Range(min = 8, max = 16)
    private String memberPwd;
    @NotEmpty
    private String memberNM;

    public Member() {
    }

    public String getMemberId() {
        return memberId;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getMemberPwd() {
        return memberPwd;
    }

    public void setMemberPwd(String memberPwd) {
        this.memberPwd = memberPwd;
    }

    public String getMemberNM() {
        return memberNM;
    }

    public void setMemberNM(String memberNM) {
        this.memberNM = memberNM;
    }
}

 

그리고 컨트롤러에서 @Validated를 사용해서 Member를 받자

@PostMapping("/members/add")
    public String memberAdd(@ModelAttribute @Validated Member member, BindingResult bindingResult, Model model)

 

테스트 코드를 작성하자

    @Test
    void 비밀번호_길이_제한() throws Exception {
        //given //when //then
        mockMvc.perform(post("/members/add")
                .param("memberId", "testId")
                .param("memberPwd", "test")
                .param("memberNM", "test"))
                .andExpect(model().errorCount(1))
                .andExpect(model().attributeHasFieldErrors("member", "memberPwd"))
                .andExpect(model().attributeHasFieldErrorCode("member", "memberPwd", "Range"));
    }

여기서 memberPwd만 에러가 발생하도록 8 글자 미만로 넣는다.

.andExpect(model().errorCount(1))

 - 에러의 갯수 체크

.andExpect(model().attributeHasFieldErrors("member", "memberPwd"))

 - 필드 에러가 있는지 확인 (member의 memberPwd)

.andExpect(model().attributeHasFieldErrorCode("member", "memberPwd", "Range"))

 - 필드 에러 코드로 확인

 - member에서 memberPwd가 Range 에러인지 확인

'프로그래밍 > Spring' 카테고리의 다른 글

싱글톤 패턴  (0) 2021.09.12
Spring 이해  (0) 2021.09.06
Spring과 Spring Boot 차이점  (0) 2021.09.05