Testing Codes/Testing Coroutines

    [Testing Coroutines] 코루틴 비동기 테스트가 어려운 이유

    코루틴이 멀티 스레드 환경에서 실행될 때 테스트가 어려운 이유 코루틴은 일반적으로 멀티 스레드 환경에서 비동기적으로 실행된다. 이 때문에 멀티 스레드 환경의 문제가 그대로 테스트에 나타난다. 그 대표적인 문제는 다음과 같다. 1. 함수 호출 순서 문제 2. 경쟁 상태 문제 3. 코루틴이 사용하는 디스패처 문제 함수 호출 순서 문제 멀티 스레드 환경에서 실행되는 함수들은 함수의 호출 순서를 파악하기 어렵다. 코루틴을 테스트 할 때도 이 문제가 나타나며, 병렬성으로 인해 실행을 코루틴이 실행되기 전에 다른 코루틴이 실행될 수 있다. 또한, 코루틴은 함께 실행되기 때문에 어떤 코드가 먼저 실행될지 파악하기 매우 어렵다. 예를 들어 하나의 코루틴이 일시 중단하게 되면 스레드를 다른 스레드가 사용할 수 있도록 양..