
백엔드
에러를 리턴하는 goroutine 테스트 코드 쉽게 제어하기
두줄요약
goroutine 내부 에러를 테스트할 때의 비결정성을 줄이는 방법을 다뤘습니다. sync.WaitGroup과 채널 기반 Waiter로 종료 대기와 에러 전파를 제어하는 구조를 소개했습니다.
핵심 내용
- goroutine 내부 에러를 테스트할 때 발생하는 비결정적 실행 순서와 종료 감지 어려움 정리
- 경쟁 상태 방지를 위해 준비 단계를 goroutine 실행 전에 분리하는 방식 제안
- sync.WaitGroup과 채널 기반 Waiter로 에러 전파와 종료 대기 제어하는 테스트 구조 소개
적용해볼 점
- 비동기 테스트에서 실행 순서 보장과 에러 캡처를 분리해 설계
- 여러 goroutine의 정상 종료와 예외 종료를 구분해 검증
