-
P1_C3_2. 테스트 코드- 비밀번호 유효성 검증기 만들기Anna belly belly hard/java_spring 2023. 5. 13. 00:30반응형
* 요구사항
• 비밀번호는 최소 8자 이상 12자 이하여야 한다.
• 비밀번호가 8자 미만 또는 12자 초과인 경우 IllegalArgumentException 예외를 발생시킨다.
• 경계조건에 대해 테스트 코드를 작성해야 한다.1. 셋팅
2. assertj, junit 의존성 추가
• https://assertj.github.io/doc/#assertj-core-assertions-guide
// junit5 기본적으로 설치된다고 하는데 그렇지 않았다.. testImplementation('org.jnunit.jupiter:junit-jupiter-api:5.8.1') testImplementation('org.junit.jupiter:junit-jupiter-engine:5.8.1') // assertj 의존성 추가 testImplementation 'org.assertj:assertj-core:3.23.1'
3. class 추가
4. 테스트 코드 추가
커맨드 + n
커맨드 + N 누르면.. 그냥 된다.... 선생이 가르칠땐 test method 에 junit이 있던데... 어쨋든...
F2 버튼을 누르면 빨간색으로 이동
Alt + enter
import static method 클릭!
실행 시키면 에러
passwordvalidator 가 없기 때문에! 에러!
validate 클래스 추가
test !
test2!
잘 통과한것을 확인하여 리팩토링 시행!!
* 지역변수로 만들어 주기
comand + alt + v
그후 테스트 코드 통과함! = 리팩토링 잘됫따!
즉, 테스트 코드가 있기에 마음껏 리팩토링 할수 있다.
* 상수로 만들어주기
command + alt(option?) + c
리팩토링 실시 -> 테스트코드 ok -> 리팩토링 성공!
리팩토링시 안정성 확보 !
계속.......
의존성 추가
https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/
공부를 할것...
의존성 추가
클래스 추가 RandomPasswordGenerator.java
클래스 추가 : user
테스트 코드 !
getter 추가
테스트 코드 돌릴시 비밀번호가 랜덤으로 만들어 지기 때문에 성공할수도 실패할수도 있다.
이는 패스워드를 몇글자로 만들지 컨트롤 할수가 없어서 이기때문에
이를 위해 인터페이스 passwordGenerator 를 만든다.
테스트 항상 성공 함!!
강결합 -> 결합을 느슨하게 만듬
소스코드 : https://github.com/bibiana1202/oop_practice_m1
반응형'Anna belly belly hard > java_spring' 카테고리의 다른 글
P1_C3_4. 사칙연산 계산기 구현 (0) 2023.05.14 P1_C3_3. 객체지향 개념정리 (0) 2023.05.14 P1_C3_1. 테스트 코드 작성하기 (0) 2023.05.12 P1_C2_3. 도커 및 도커 컴포즈 , 도커를 이용한 개발환경 만들기(MySQL 도커 연동하기) (0) 2023.05.12 P1_C2_2. 웹 개발 환경 구성하기 (0) 2023.05.12