Book Review

Book Review/테스트 주도개발 시작하기

[테스트 주도개발 시작하기] Chapter1: 암호 검사기 완료

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..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter5. 스트림 활용

1. 필터링 프레디케이트로 필터링 스트림 인터페이스는 filter 메서드를 지원한다. filter 메서드는 플레디케이트(불리언을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다. List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList()); // 채식 요리인지 확인하는 메서드 참조 고유 요소 필터링 스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다. 리스트의 모든 짝수를 선택하고 중복을 필터링한다. List numbers = Arrays.List(1, 2, 1, 3, 3, 2, 4); numbers.stream() .filter(i -> i..

Book Review/테스트 주도개발 시작하기

[테스트 주도개발 시작하기] Chapter1. TDD 시작(6): 암호 검사기

네 번째 테스트: 값이 없는 경우 테스트 코드를 작성하는 과정에서 아주 종요한 테스트를 놓쳤다. 바로 값이 없는 경우를 테스트하지 않은 것이다. meter() 메서드에 null을 전달하면 NullPointerException이 발생하게 된다. null을 입력할 경우 암호 강도 측정기는 어떻게 반응해야 할까? IllegalArgumentException 발생한다. 유효하지 않은 암호를 의미하는 PasswordStrength.INVALID를 리턴한다. 두 번째 방법을 선택해보자. 네 번째 테스트 코드 작성 입력이 null인 경우에 대한 테스트 추가 @DisplayName("입력이 null인 경우") @Test void nullInput_Then_Invalid() { assertStrength(null, Pa..

Book Review/테스트 주도개발 시작하기

[테스트 주도개발 시작하기] Chapter1. TDD 시작(5): 암호 검사기

세 번째 테스트: 숫자를 포함하지 않고 나머지 조건을 충족하는 경우 세 번째 테스트 메서드를 추가하자. 이번 테스트 대상은 숫자를 포함하지 않고 나머지 조건은 충족하는 암호이다. 이 암호도 보통 강도를 가져야 한다. 세 번째 테스트 코드 작성 @DisplayName("숫자 포함x, 나머지 조건 충족, 강도는 보통") @Test void meetsOtherCriteria_except_for_number_Then_Normal() { PasswordStrengthMeter meter = new PasswordStrengthMeter(); PasswordStrength result = meter.meter("ab!@ABqwer"); assertThat(PasswordStrength.NORMAL).isEqualT..

Book Review/테스트 주도개발 시작하기

[테스트 주도개발 시작하기] Chapter1. TDD 시작(4): 암호 검사기

두 번째 테스트: 길이만 8글자 미만이고 나머지 조건은 충족하는 경우 두 번째 테스트 메서드를 추가하자. 이번에 테스트할 대상은 패스워드 문자열의 길이가 8글자 미만이고 나머지 조건을 충족하는 암호이다. 이 암호의 강도는 보통이어야 한다. 두 번째 테스트 코드 작성 @DisplayName("길이 8글자 미만, 나머지 조건 충족, 강도는 보통") @Test void meetsOtherCriteria_except_for_Length_Then_Normal() { PasswordStrengthMeter meter = new PasswordStrengthMeter(); PasswordStrength result = meter.meter("ab12!@A"); assertThat(PasswordStrength.NOR..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter4. 스트림 소개

1. 스트림이란 무엇인가? 데이터 컬렉션 반복을 멋지게 처리하는 기능 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 다음 예제는 저칼로리의 요리명을 반환하고, 칼로리를 기준으로 요리를 정렬하는 자바 7 코드 기존 코드 List lowCaloricDishes = new ArrayList(); for (Dish d : dishes) { if (d.getCalories() < 400) { lowCaloricDishes.add(d); } } List lowCaloricDishesName = new ArrayList(); Collections.sort(lowCaloricDishes, new Comparator() { // 익명 클래스로 요리 정렬 @Override public int..

초보병일이
'Book Review' 카테고리의 글 목록