P1_C3_2. 테스트 코드- 비밀번호 유효성 검증기 만들기
* 요구사항
• 비밀번호는 최소 8자 이상 12자 이하여야 한다.
• 비밀번호가 8자 미만 또는 12자 초과인 경우 IllegalArgumentException 예외를 발생시킨다.
• 경계조건에 대해 테스트 코드를 작성해야 한다.
1. 셋팅
2. assertj, junit 의존성 추가
• https://assertj.github.io/doc/#assertj-core-assertions-guide
AssertJ - fluent assertions java library
Thanks to all the contributors of this release: Erhard Pointl, Stefano Cordio, BJ Hargrave, Jeremy Landis, Ashley Scopes, Roland Weisleder , Benedikt Bogason , Andreas Kutschera , Matthew , Chris HeZean , Leo0506 , Zhou Yicheng , Saria , Chunhao Liao , max
assertj.github.io
// 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/
JUnit 5 Tutorial: Writing Parameterized Tests
JUnit 5 Tutorial: Writing Parameterized Tests Author: Petri Kainulainen Published: December 19, 2021 If you want to get access to up-to-date material which is essentially a better version of my JUnit 5 tutorial, you should take a look at my upcoming Introd
www.petrikainulainen.net
공부를 할것...
의존성 추가
클래스 추가 RandomPasswordGenerator.java
클래스 추가 : user
테스트 코드 !
getter 추가
테스트 코드 돌릴시 비밀번호가 랜덤으로 만들어 지기 때문에 성공할수도 실패할수도 있다.
이는 패스워드를 몇글자로 만들지 컨트롤 할수가 없어서 이기때문에
이를 위해 인터페이스 passwordGenerator 를 만든다.




테스트 항상 성공 함!!
강결합 -> 결합을 느슨하게 만듬
소스코드 : https://github.com/bibiana1202/oop_practice_m1
GitHub - bibiana1202/oop_practice_m1: https://organize1202.tistory.com/10
https://organize1202.tistory.com/10. Contribute to bibiana1202/oop_practice_m1 development by creating an account on GitHub.
github.com