티스토리 뷰

728x90

로또 미션 2단계 코드 리뷰에서 다음과 같은 리뷰를 받았다. 

 

처음에는 진짜 띠용?? 이었다. 😨

이걸 어떻게 검색해봐야하지..? 하는 고민이 들었었다. 

그러다 크루들과 로또 미션 코드 회고를 할 기회가 생겼는데, 당시 이에 대해 아는 크루가 있는지 물어봤었다. 

 

감사하게도 로마가 @ParameterizedTest에도 name 인자를 지정해 넘겨줄 수 있다는 것을 알려줬다!! 👍

회고를 통해 알게 된 것도 많고, 공부할 것들도 늘어나고, 아직 진짜 모르는게 많다는 생각도 들고.. 좋다.. 😹

 

JUnit5 User Guide를 확인해보니 "2.15.6. Customizing Display Names"라는 소주제로 해당 내용을 다루고 있었다.

왜 JUnit5 문서를 찾아볼 생각은 안 하고 검색부터 할려고 했을까.. 반성해라 나 자신.. 👊

 

 

기존 테스트 코드를 다음과 같이 작성했었는데 

@ParameterizedTest
@CsvSource({"0, 14", "3, 11", "14, 0"})
@DisplayName("수동 로또 구매 후 남은 돈으로 살 수 있는 자동 로또 개수를 반환한다.")
void calculateAutoLottoCount(int count, int expected) {
    PurchaseAmount purchaseAmount = new PurchaseAmount(14_000);

    assertThat(purchaseAmount.calculateAutoLottoCount(count)).isEqualTo(expected);
}

여기에 name 인자를 지정해 출력 스타일을 원하는 데로 변경할 수 있다. 

@ParameterizedTest(name = "[{index}] 수동 로또가 {0}개면, 자동 로또는 {1}개")

어떤 부분을 테스트 했는지 이제는 좀 알아보겠구만!!

 

여기서 name은 MessageFormat 패턴을 사용한다. 

아래의 placeholder를 적절히 사용해 출력해보자!!

 

 


 

IntelliJ에서 @DisplayName이 실행 탭에 표시되지 않는 문제 해결

IntelliJ에서 테스트 코드를 실행시켜보면 @DisplayName이 실행탭에 표시되지 않는 문제가 발생할 수 있다. 

 

나는 일반 @Test에서는 표시 됐지만, 

다음과 같이 @Parameterized에 적용시킬 경우 표시되지 않았다. 🥲

아니 이걸 왜 로또 미션 2단계까지 와서 깨달은 걸까.. 나도 참..

 

찾아보니 나만의 문제는 아니었다. 

Preferences > Build, Execution, Deployment > Gradle에서 Run tests using을 "IntelliJ IDEA"로 변경하면 쉽게 해결된다.

 


 

Ref.

http://jmlim.github.io/intellij/2020/03/02/intellij-junit5-display-name-did-not-show-issue/

 

728x90
댓글
공지사항
최근에 올라온 글