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




