문제가 발생한 Controller UserControllerTest 그냥 봤을 때 전혀 문제 없이 진행할 수 있는 테스트입니다. User 관련한 Test 코드를 실행했을 때 상황을 보겠습니다. 유저 관련 Test만 진행했을 때 전혀 문제없이 통과합니다. 순서를 어떻게 해도 통과합니다. 단순 회원가입 기능만 작성했기 때문에 그렇게 꼬일 일이 없습니다. 그럼 전체 테스트를 돌려봤을 때 상황을 살펴보겠습니다. 전체 테스트 돌렸을 때 발생한 문제 UserControllerTest만 실패 다른 테스트는 리팩토링 과정 중에 아직 수정하지 않고 UserTest 쪽 먼저 진행 중에 글을 작성한 것입니다. 신경쓰지 않아도 됩니다. 대체 왜 UserControllerTest가 실패했을까요? 처음 이 문제를 해결하기 위해서..
에러발생 발생원인 분명 서버 실행하고 진행하면 잘 되는데 왜 이러한 에러가 발생할까? Jwt SecretKey를 어떻게 받고있는지 한 번 살펴보겠습니다. 저같은 경우에는 환경변수를 이용해서 key값을 받고있습니다. 그래서 서버가 실행되면 key값이 들어가야 되는데 테스트 코드를 작성하는 곳에는 환경 변수를 세팅하거나 yml이 존재하지 않기 때문에 @Value에서 에러가 발생한 것이였습니다. 해결방법 해결할 수 있는 방법은 2가지가 존재합니다. 첫번째: 환경변수 설정 모든 테스트 환경에 환경변수를 적용하는 방법입니다. 이건 테스트 클래스가 많아질 수록 귀찮고 놓칠 수 있는 부분이기 때문에 비효율적이라고 판단했습니다. 두번째: 테스트 전용 yml 생성 테스트 전용 yml을 생성하는 방법입니다. 이렇게 설정해..
Page 안에 있는 값을 먼저 살펴보자. Postman으로 조회했을 때 볼 수 있는 값이다. 이러한 형태는 어떻게 Rest Docs를 이용해서 나타낼 수 있을까? 엄청난 시간을 썼다. 저 모든 값을 다 필드로 나타내야 되는 건가? content 안에 있는 값에 접근해야 되는 건가? 어떻게 $.??.?? 이런 식으로 어떻게 접근해야 될까 시도를 엄청 많이했다. @RequestParam 값을 어떻게 처리해야 될까 전체 조회(페이징) 컨트롤러 먼저 내가 작성한 controller를 살펴보자. @GetMapping("/items") public Page readItemList(@RequestParam(value = "page", defaultValue = "0") Integer page, @RequestPara..
암호 검사기 검사할 규칙은 다음 세 가지이다. 길이가 8글자 이상 0부터 9 사이의 숫자를 포함 대문자 포함 세 규칙을 모두 충족한다. -> 강함 2개의 규칙을 충족한다. -> 보통 1개 이하의 규칙을 충족한다. -> 약함 테스트할 기능의 이름을 정해보자. '약함', '보통', '강함'은 암호 등급이라고 생각할 수 있다. PasswordLevel이라는 단어를 사용하자. 등급 대신에 강도라는 의미를 사용할 수도 있다. 이 경우 PasswordStrength라는 단어를 사용할 수 있다. 암호 등급과 암호 강도 중에서 PasswordStrength를 선택했다. public class PasswordStrengthMeterTest { @DisplayName("테스트 메서드 생성") @Test void name(..