• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

7:35 부분에서 질문합니다.

23.09.02 18:48 작성 조회수 293

0

혼자 여러 번 연습할 때 마다 여기서 계속 막혀서 적습니다. 코드는 다음과 같습니다.

깃허브 주소: https://github.com/KrillM/studyclub

    @Test
    @DisplayName("회원 가입 처리 - 입력값 오류")
    public void signUpSubmit_wrongInputTest() throws Exception{
        mockMvc.perform(post("/sign-up")
                        .param("nickname", "keesun")
                        .param("email", "email...")
                        .param("password", "12345")
                        .with(csrf()))
                .andExpect(status().isOk())
                .andExpect(view().name("account/sign-up"));
    }

답변 2

·

답변을 작성해보세요.

0

pom.xml에

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>8.0.1.Final</version>
</dependency>

이거 대신에

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

이렇게 넣어주시면 해결 될겁니다.

스프링 부트 2.3부터는 spring-boot-starter-validator를 명시적으로 넣어주셔야 @Valid가 동작하고 hibernate-validator를 넣으면 해결된다는 글들은 구글링하면 나오긴 하는데 정확한 가이드는 아닌것 같습니다.

제가 강의 영상을 찍을 당시에는 스프링 부트 2.3 아래 버전이어서 저 의존성이 필요 없었지만 아마 이 강의 마지막 쯤에 추가로 스프링 부트 2.3으로 업데이트 하는 수업이 있을텐데 거기서 한번 더 설명 드릴겁니다.

수업을 따라 들으실 때는 가급적이면 스프링 버전도 수업에 맞춰서 들어주시면 감사하겠습니다.

0

우선은 디버그 모드로 돌려보시면서 입력값 오류 처리하는 곳으로 코드가 흘러가는지 확인해 보셔야 할 것 같습니다.

java.lang.AssertionError: Status expected:<200> but was:<302> 라고 계속 뜹니다.

MockHttpServletResponse:

Status = 302

Error message = null

Headers = [Content-Language:"en", X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY", Location:"/"]

Content type = null

Body =

Forwarded URL = null

Redirected URL = /

Cookies = []

테스트 메소드가 signUpForm 제한 사항을 인지하지 못하는 거 같습니다.

추가로 디버깅 결과

ModelAndView:

View name = redirect:/

View = null

Model = null

가 나옵니다.