SpringCamp2024
- [Spring Camp] Spring Coroutine in action
- [Spring Camp] 나는 왜 테스트를 작성하기 싫을까
- [Spring Camp] 동시성의 미래 - 코루틴의 버츄얼 스레드
- [Spring Camp] 실전! MSA 개발 가이드
[Spring Camp] 나는 왜 테스트를 작성하기 싫을까
0. 문제점
테스트를 위해 Fixture Monkey 를 사용했음(네이버에서 개발한 테스트 모듈). 객체에 대한 생성이 쉬워짐
문제점
- 간헐적으로 테스트가 깨짐
- 스펙을 추가할 때마다 DomainFixture 를 작성해줘야 함
회고
- Fixture Monkey 를 사용해 낮아진 테스트 작성 비용과 넓어진 테스트 범위
- 주문서 특성상 모든 코드를 테스트해야 한다라는 생각
- DominFixture 유지보수 비용을 생각 못함
-> 테스트 이득과 비용에 대해 진지하게 고민하게 되는 계기
테스트를 작성하기 싫은 이유는 비용(작성비용, 유지보수 비용)이 확장 비용보다 크기 때문입니다. 비용을 결정하는 요소는,
- 작성하는 로직이 어떤 요청이 필요한지(Given)
- 작성하는 로직은 어떤 결과가 나와야 하는지 (Then)
제거할 수 있는 테스트 비용
- (Given) 테스트를 복잡하게 작성하려 한다. -> 작성비용
- (Then) 하나의 테스트에서 많은 검증을 하려한다. -> 유지보수 비용
- ex. 기능 테스트에서 리스트 결과값이 2개 이상 나오도록 해야 하나? 작동하는지만 검증하면 되는데?
- 계좌의 잔액을 비교하려면 assert(accout, mockAccount) 보다는 assert(account.amount, 3000) 과 같이 필요한 것만 비교해야 함. aacount 가 확장되면 결국 깨지 것이기 떄문임.
테스트 비용 줄이기
- 픽스쳐 몽키 사용하기
- 최대한 간단한 경우의 수 테스트 하기
댓글남기기