Sun's Blog
[10분 테코톡] 단위테스트 본문
단위 테스트란 무엇인지
애플리케이션 안에 있는 개별적인 코드 단위가 의도한 대로 작동하는지 확인하는 행위
단위 테스트는 왜 사용하나요?
- 원하는 부분만 테스트를 함으로 결과를 빠르게 볼 수 있다.
- 미리 작성한 단위 테스트를 기반으로 프로덕션 코드의 리팩토링을 안정적으로 할 수 있다.
- 단위 테스트가 실패하는 지점에서 문제점을 빠르게 찾을 수 있다.
결론: 코드의 일부분을 빠르게 검증할 수 있고, 코드 리팩토링이 안정적이고 코드의 문제점을 빠르게 찾을 수 있다.
단위 테스트 작성 꿀팁.
Given-When-Then 패턴 적용
- given: 테스트를 위해 준비하는 과정, 테스트에 사용하는 값을 정의한다.
- when: 테스트하고자 하는 기능을 실행한다.
- then: 기능을 실행한 후 결과를 검증한다.
위의 패턴을 사용하면 더 쉽게 읽을 수 있고 유지 보수하기 좋지만 필수는 아니고 선택이다.
@ParameterizerTest 사용해서 여러 값을 테스트하자.
- 테스트 값을 배열로 줄 수 있어서 중복된 결과를 줄일 수 있어 경계선 테스트같은 경우에 용이하다.
First 원칙
First원칙은 '클린 코드' 책의 저자 'Bob Martin'이 제시한 규칙이며 효율적이고 좋은 단위 테스트를 하기 위한 5가지 요소로 이뤄진 규칙이다.
- F(Fast): 단위 테스트는 빨라야 한다.
- I(Independent): 테스트는 독립적으로 동작해야 한다. 이전 테스트에 영향을 받으면 실패 원인을 찾기 어렵다.
- R(Repeatable): 어떤 상황에서든 예상한 대로 테스트 결과가 나와야 한다.
- S(Self-Validating): 출력 혹은 로그가 아닌 테스트 자체적으로 결과가 나와야한다. println이나 log가 아닌 valid로 증명해야한다.
- T(Timely): 적시에 테스트를 철저하게 작성 해야한다.
후기
First 원칙은 몰랐는데 I부분에서 AutoIncrement 때문에 고생했던 것이 기억난다. 그리고 @ParameterizerTest 매번 사용해야지 하면서 사용안하는데 이번 프로젝트에서는 적용하도록 하자.
'ETC' 카테고리의 다른 글
Git 명령어 (0) | 2023.07.07 |
---|---|
Ubuntu Gitlab 설치 (0) | 2023.07.07 |
[10분 테코톡] Spring vs SpringBoot (0) | 2023.07.05 |
[10분 테코톡] 전략 패턴 (0) | 2023.07.01 |
JWT (1) | 2023.05.15 |