티스토리 뷰
크롬을 켜서 실제 테스트로 진행하면 200 http response code가 뜨지만
유닛 테스트를 돌려서 테스트를 진행하면 401 오류가 발생하는 경우가 있다.
java.lang.AssertionError: Status expected:<200> but was:<401>
필요:200
실제 :401
MockHttpServletResponse:
Status = 401
Error message = Unauthorized
Headers = [WWW-Authenticate:"Basic realm="Realm"", X-Content-Type-Options:"nosniff", X-XSS-Protection:"0", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
이런식으로 401 응답 코드만 뜨는 경우 사용자 권한이 부족해서 그런데
보통 Spring-Security가 적용되어 있고, 별도 권한 작업을 하지 않은 경우 테스트 진행이 어렵다.
그러므로 해당 테스트 메소드에 기존 @Test 어노테이션 아랫줄에 @WithMockUser(roles = "USER") 어노테이션을 추가로 입력하여
이미 권한을 받은 유저(Mock User)로 인식시킨 후 유닛 테스트를 진행해야 한다.
댓글