본문 바로가기

시리즈30

[TEST] 테스트를 위한 JUnit 5 와 AssertJ ② AssertJ 의 장점.메소드 체이닝을 지원하기 때문에 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있다.JUnit 만으로는 부족한 테스트 기능을 거의 대부분 제공합니다.간단한 예.모든 테스트 코드는 assertThat() 메소드에서 출발합니다.assertThat().메소드().메소드2().메소드3() # 문자열 테스트assertThat("Hello, world! Nice to meet you.") // 주어진 "Hello, world! Nice to meet you."라는 문자열은 .isNotEmpty() // 비어있지 않고 .contains("Nice") // "Nice"를 포함하고 .contains("world") // "world"도 포함하고 .doesNotContain("ZZZ") .. 2024. 10. 25.
[TEST] 테스트를 위한 JUnit 5 와 AssertJ ① 들어가며.프리코스 2주차가 벌써 절반이 지났습니다. TDD 를 적용하고자 개발 전에 우선 테스트를 작성하고 기능 구현을 하는 식으로 적용하고 있는데요. 아직은 JUnit 과 AssertJ 관련 문법이 어색해서 보면서 사용하고 정리할 겸 작성하게 되었습니다.JUnit 5 와 AssertJ.JUnit 5 : 자바 단위 테스트를 위한 테스팅 프레임워크AssertJ : 자바 테스트를 돕기 위해 다양한 문법을 지원하는 라이브러리JUnit 만으로도 단위 테스트를 충분히 작성할 수 있지만 JUnit 에서 제공하는 assertEquals() 와 같은 메소드는 AssertJ 가 주는 메소드에 비해 가독성이 떨어지기에 순수 Java 애플리케이션에서 단위 테스트를 위해 JUnit 5와 AssertJ 조합이 많이 사용됩니다... 2024. 10. 24.
[TDD] 테스트 주도 개발의 의미와 방법에 대해서 들어가며.개발을 하면서 TDD 라는 용어는 한 번쯤은 들어봤을거라 생각하는데요. 이번에 프리코스 2주차를 시작하면서 JUnit 5와 AssertJ 를 이용하여 개발을 진행해보라는 요구 사항을 접하게 되었습니다. 말로는 많이 들어봤지만 개발이 바쁘다보니 실제로 적용해본 적은 없는데요. 이번 기회에 TDD 에 대해 정리하고 JUnit 과 AssertJ 에 익숙해지고자 작성하게 되었습니다.TDD 에 대한 간략한 소개.TDD 는 Test Driven Development 의 약자로 켄트백이 1999년 익스트림 프로그래미의 일부로 제안하며 알려졌습니다. 지금은 많은 분들이 익스트림 프로그래밍은 뭔지 몰라도 TDD 는 알 만큼 유명해졌는데요. TDD 는 동작하는 코드를 작성하기 이전에 테스트를 먼저 작성하고, 그 .. 2024. 10. 24.
[JAVA] 몰라서 못 썼던 정규 표현식을 알아보자 ④ [ 정규표현식 시리즈 ]몰라서 못 썼던 정규 표현식을 알아보자 ①몰라서 못 썼던 정규 표현식을 알아보자 ②몰라서 못 썼던 정규 표현식을 알아보자 ③몰라서 못 썼던 정규 표현식을 알아보자 ④ # 욕심 수량자와 겸허 수량자*, +, ? 등의 수량자가 포함된 경우 서브 매치의 할당은 앞서 포스팅한 왼쪽부터 오른쪽이라는 원칙으로 설명할 수 있었지만, 욕심 수량자와 겸허 수량자의 차이를 이해한다면 이 원칙을 벗어날 수 있습니다.수량자 종류욕심겸허스타**?플러스++?물음표???범위 수량자{n}, {n,m}{n}?, {n,m}? 위 표를 보면 알 수 있듯이 기본적으로 연산자는 욕심의 성질을 가지고 있고 뒤에 물음표을 붙이면 겸허 연산자가 됩니다. 둘의 차이는 캡션에 대하는 동작으로 최대한 많은 패턴을 일치시키려는 욕.. 2024. 10. 22.
[JAVA] 몰라서 못 썼던 정규 표현식을 알아보자 ③ [ 정규표현식 시리즈 ]몰라서 못 썼던 정규 표현식을 알아보자 ①몰라서 못 썼던 정규 표현식을 알아보자 ② 몰라서 못 썼던 정규 표현식을 알아보자 ③ 몰라서 못 썼던 정규 표현식을 알아보자 ④# 정규 표현식에서의 "일치"완전 일치 : 정규 표현식이 주어진 문자열 전체에 일치전방 일치 : 정규 표현식이 주어진 문자열의 접두사에 일치후방 일치 : 정규 표현식이 주어진 문자열의 접미사에 일치부분 일치 : 정규 표현식이 주어진 문자열의 부분 문자열에 일치예를 들어 [ab]*a[ab]{2} 라는 정규 표현식이 있을 때 'aab' 나 'bababa' 는 완전 일치하지만, 'babab' 에는 완전 일치하지 않습니다. 하지만 부분 일치로 봤을 때 babab 또한 일치함을 알 수 있습니다. b 'aba' b 처럼 작은 .. 2024. 10. 21.
[JAVA] 몰라서 못 썼던 정규 표현식을 알아보자 ② [ 정규표현식 시리즈 ]몰라서 못 썼던 정규 표현식을 알아보자 ① 몰라서 못 썼던 정규 표현식을 알아보자 ② 몰라서 못 썼던 정규 표현식을 알아보자 ③몰라서 못 썼던 정규 표현식을 알아보자 ④  기능적으로는 앞서 작성했던 세 가지 연산(집합, 선택, 반복)만으로도 할 수 있지만 가독성을 위해 추가된 표현식에 대해 적어보겠습니다. # 수량자* 는 특정한 패턴을 0회 이상 반복하는 연산자라고 했습니다. 이전 포스트에서 숫자만으로 구성된 길이 1 이상의 문자열을 찾는 정규 표현식은 " (0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* " 와 같이 복잡하게 나타내야하는데 이를 깔끔하게 줄일 수 있는 방법을 수량자를 통해 알려드리겠습니다. + (플러스 연산)+ 패턴은 1회 이상의 반복.. 2024. 10. 20.