2021-05-19(Wed)
Facts (사실, 객관)
테스트 케이스를 리팩토링하였다.
사이드 프로젝트 회의를 두 차례 진행하였다.
Feelings (느낌, 주관)
아내와 시간을 잘 못 보냈었는데, 같이 시간을 보내고 사진도 많이 찍어줄 수 있는 하루였다. 덕분에 다행스럽다.
테스트를 능숙하게 잘 짜고 싶다.
Findings (배운 점)
Unit Test를 어떻게 해야 잘 작성할 수 있을지 학습했다.
하나의 테스트케이스에 최소한의 기능만 검증하고, 최대한 간결하게 작성한다.
입력값에 대한 결과 값을 검증하는 방식으로 작성하라.
기본적으로는 입력값에 대한 결과값을 확인하는 방식으로 작성하면 소스가 변경되더라도 테스트케이스를 변경할 일이 훨씬 적다.
불안한 부분이 없도록, 개발하는 부분은 최대한 커버하라.
Third Party Library의 기능은 믿고, 단위테스트 검증대상에서 제외하라.
넘 중요한 기능이라면 Integration Test나 다른 테스트로 검증하는 것을 고려해보자.
Setter는 막 써도 되나?
테스트 코드 작성 시에만 Setter를 사용하도록 하자. 강제할 방법은 없지만.
@DisplayName
이란?테스트 메서드를 실행할 때 임의의 메세지를 Test reports와 IDE test runner에 출력하기 위해 쓸 수 있는 어노테이션이다.
JUnit4에서는 메서드의 이름만 출력 가능했기 때문에, 테스트 맥락 등을 설명하기 위해 메서드 이름이 길어지는 문제가 있었다. 이 문제를 해결하기 위해 JUnit5 부터 추가되었다.
영어 외에도 다양한 언어와 이모티콘까지 모두 출력 가능하다.
"메소드를 처음 본 사람이 이 테스트가 무엇을 테스트하는지 3초 안에 알아차리도록 하려면 어떻게 해야 좋을까요?"
라는 종립님의 질문에 답하다가 D-C-I 패턴으로 테스트코드를 작성하는 방법을 학습했다.
Affimation (자기 선언)
테스트 케이스를 모두 리팩토링하고 제출한다.
솔직히 묻고 답한다.
Last updated