Closed Jonghai closed 1 year ago
문자열을 검사해서 규칙을 준수하는지에 따라 암호를 '약함', '보통', '강함'으로 구분한다.
검사할 조건 세가지 1 . 길이가 8글자 이상
암호 검사 기능에서 가장 쉽거나 가장 예외적인 상황.
암호의 강도는 int 타입으로 약하면 0 보통이면 1 강하면 2 라고 할 수 있지만. 열거타입을 사용하여 암호강도를 더 잘 표현함. https://github.com/2jigoo/BookStudy-StartTdd/blob/70a2e6e14b26263a037b8a08609dfc177fc4110e/src/main/java/chap02/PasswordStrength.java#L1-L5
테스트 코드도 유지보수 대상이다. 즉 테스트 메서드에서 발생하는 중복을 알맞게 제거하거나 의미가 잘 드러나게 코드를 수정할 필요가 있다.
PasswordStrengthMeter passwordStrengthMeter = new PasswordStrengthMeter();
=>
private PasswordStrengthMeter passwordStrengthMeter = new PasswordStrengthMeter();
PasswordStrength result = passwordStrengthMeter .meter(암호);
assertEquals(기댓값, result);
=>
assertStrength
메서드를 사용하도록 바꿀 수 있다.private void assertStrength(String password, PasswordStrength expStr){
PasswordStrength result = passwordStrengthMeter.meter(password);
assertEquals(expStr,result);
}
<TDD 이전의 개발>
TDD 이전의 개발에서는 결국 디버깅하면서 원인을 찾는 시간에 길어져 개발시간보다 버그를 찾는 시간이 더 길어질 수 있다.
<TDD란?>
TDD는 테스트부터 시작하는 개발방법론.
덧셈 기능에 대한 예
plus() 메서드 기능을 작성하기 전에 Test부터 만들기 다음과 같은 조건들을 생각하며 Test를 작성한다.
https://github.com/2jigoo/BookStudy-StartTdd/blob/70a2e6e14b26263a037b8a08609dfc177fc4110e/src/test/java/chap02/CalculatorTest.java#L9-L14
assertEquals()를 사용하여 실행결과가 올바른지 검증.
당연히 plus()를 아직 작성 안했으니 오류가 날 것. plus() retrun값을 0으로 주고 기대값을 3으로 설정했을때 테스트를 돌려보면 기대값과 다르기 때문에 오류가 날 것.
이러한 과정을 반복하면서 plus()는 테스트를 통과 시키기 위해 점진적으로 기능을 완성시켜나간다.