https://github.com/YunByungil/Test-Driven-Development/tree/main/src/main/java/development/tdd/chap02 GitHub - YunByungil/Test-Driven-Development: 테스트 주도 개발 시작하기 테스트 주도 개발 시작하기 . Contribute to YunByungil/Test-Driven-Development development by creating an account on GitHub. github.com https://github.com/YunByungil/Test-Driven-Development/tree/main/src/test/java/development/tdd/chap02 GitHub - YunB..
네 번째 테스트: 값이 없는 경우 테스트 코드를 작성하는 과정에서 아주 종요한 테스트를 놓쳤다. 바로 값이 없는 경우를 테스트하지 않은 것이다. meter() 메서드에 null을 전달하면 NullPointerException이 발생하게 된다. null을 입력할 경우 암호 강도 측정기는 어떻게 반응해야 할까? IllegalArgumentException 발생한다. 유효하지 않은 암호를 의미하는 PasswordStrength.INVALID를 리턴한다. 두 번째 방법을 선택해보자. 네 번째 테스트 코드 작성 입력이 null인 경우에 대한 테스트 추가 @DisplayName("입력이 null인 경우") @Test void nullInput_Then_Invalid() { assertStrength(null, Pa..
세 번째 테스트: 숫자를 포함하지 않고 나머지 조건을 충족하는 경우 세 번째 테스트 메서드를 추가하자. 이번 테스트 대상은 숫자를 포함하지 않고 나머지 조건은 충족하는 암호이다. 이 암호도 보통 강도를 가져야 한다. 세 번째 테스트 코드 작성 @DisplayName("숫자 포함x, 나머지 조건 충족, 강도는 보통") @Test void meetsOtherCriteria_except_for_number_Then_Normal() { PasswordStrengthMeter meter = new PasswordStrengthMeter(); PasswordStrength result = meter.meter("ab!@ABqwer"); assertThat(PasswordStrength.NORMAL).isEqualT..
TDD로 개발할 때 먼저 해야 할 것은 기능을 검증하는 테스트 코드를 작성하는 것이다. 덧셈 기능을 검증하기 위한 테스트 코드를 작성하자. 테스트 코드 작성 import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; public class CalculatorTest { @DisplayName("덧셈 기능 테스트") @Test void plus() { int result = CalCulator.plus(1, 2); assertThat(3).isEqualTo(result); } } 이 코드를 작성하면 12행에서 Calculator 클래스가 없다..