SummaryBook/[자바 코딩의 기술]

[Chap 6] 우선정리부터 올바르게 드러내기

seung_soos 2023. 6. 5. 15:41
  • Given-When-Then으로 테스트 구조화
    1. 테스트 코드작성시 새줄, 주석을 통한 구분하여 코드의 가독성을 높이자.
    2. Given(~주어졌을때)
    3. When(~경우)
    4. Then(~결과)
  • 의미 있는 어서션 사용하기
    1. assert 불표현식을 사용시 동등연산자(==) 등을 사용시 AssertionError 에러가 발생한다.
    2. 이때 어떤 어서션이 실패했는지만 알뿐 왜 실패 했는지는 모른다.
    3. 더 나은 메시지를 얻으려면 검증하려는 테스트에 가장 적합한 어션을 선택 하자.
  • 실제 값보다 기대 값을 먼저 보이기
    1. assertEquals(기대값, 실제값)사용하기
  • 합당한 허용값 사용하기
  • 예외 처리는 JUnit에 맡기기
    1. assertThrows 어서션을 사용하여 예상되는 예외를 발생시키자.
  • 테스트 설명하기
    • 메서드명 불필요한 용어 삭제
    • @DisplayName을 사용하여 테스트 설명 추가
  • 독립형 테스트 사용하기
    1. @BeforeEach, @BeforeAll 사용시 클래스의 맨위부터 읽어야 하며, 매 단일 테스트 메서드마다 설정 메서드의 역할을 다시 떠올려야한다.
    2. static 메서드로 정의하여 각 단일 테스트마다 사용시 테스트를 독립적으로 사용가능하다.
    3. 어떤 테스트를 한 테스트 클래스에서 다른 테스트 클래스로 옮기기도 쉽다.
  • 테스트 매개변수화
    • 하나의 테스트 내에서 매개변수별로 테스트를 사용시, 첫번째 매게변수의 실패로, 뒤의 매개변수의 결과값은 표시되지 않는다.
    • @ParameterizedTest와 @ValueSource를 사용하여 테스트를 매개변수화가능하다.
    • 실행시 JUnit은 각매개변수마다 별개의 테스트를 실행한다.
  • 경계 케이스 다루기

 

테스트 코드의 중요성은 잘 알고 있지만, 어떻게 해야하는지를 잘 몰랐다. 더 깊은공부의 필요성을 느낌.