해결된 질문
작성
·
397
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으로 업데이트 하는 수업이 있을텐데 거기서 한번 더 설명 드릴겁니다.
수업을 따라 들으실 때는 가급적이면 스프링 버전도 수업에 맞춰서 들어주시면 감사하겠습니다.
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 제한 사항을 인지하지 못하는 거 같습니다.