반응형
비공개 메서드 단위 테스트
단위 테스트를 하려고 비공개 메서드를 노출하면 기본 원칙 중 하나인 식별할 수 있는 동작만 테스트하는 것을 위반한다.
- 비공개 메서드를 직접 테스트하는 대신, 포괄적인 식별할 수 있는 동작으로서 간접적으로 테스트하는 것이 좋다.
비공개 메서드를 절대 테스트하지 말라는 규칙에도 예외가 있다.
- 예외를 이해하려면 코드의 공개 여부와 목적 간의 관계를 다시 살펴봐야 한다.
식별할 수 있는 동작 구현 세부 사항
공개 | 좋음 | 나쁨 |
비공개 | 해당 없음 | 좋음 |
테스트로 유출된 도메인 지식
도메인 지식을 테스트로 유출하는 것 또한 흔한 안티 패턴임
- 보통 복잡한 알고리즘을 다루는 테스트에서 일어난다.
테스트를 작성할 때는 특정 구현을 암시하지 말라.
단위 테스트에서는 예상 결과를 하드코딩하는 것이 좋다.
코드 오염
코드 오염은 테스트에만 필요한 코드가 프로덕션 코드에 추가하는 것을 말한다.
- 코드 오염의 문제는 테스트 코드와 제품 코드가 혼재돼 유지비가 증가하는 것이다.
구체 클래스를 목으로 처리하기
구체 클래스 대신 목으로 처리해서 본래 클래스의 기능 일부를 보존할 수 있으며, 때때로 유용하다.
- 그러나 이러한 대안은 단일 책임 원칙을 위배한다.
참조
- 단위테스트(블라디미르 크리코프)
반응형
'테스트코드 > 개요' 카테고리의 다른 글
10. 데이터베이스 테스트 (0) | 2024.03.25 |
---|---|
9. 목 처리에 대한 모범 사례 (0) | 2024.03.25 |
8. 통합 테스트를 하는 이유 (0) | 2024.03.25 |
7. 가치 있는 단위 테스트를 위한 리팩토링 (0) | 2024.03.25 |
6. 단위 테스트 스타일 (0) | 2024.03.25 |