네트워크와 무관한 URLSession Unit Test를 하는 목적

구현해보기

구현해보기 전에 앞서 URLSession의 Unit Test의 포인트를 먼저 알고 가는것이 좋다.

URLSession의 Unit Test의 포인트는 dataTask작업을 가로채는 것이다.

기본적인 URLSession의 동작은 3가지로 나뉘어진다.

  1. URLSession의 호출
  2. dataTask 메서드의 호출 및 동작
  3. dataTask 메서드 종료 및 escaping 클로저를 통한 결과값 반환

그러면 네트워크와 무관한 테스트를 위해선 URLSession의 동작 전부를 Mock(가짜)로 가로채야 한다.

우리의 목표는 MockURLSession을 만들어서 URLSessionProvider의 응답을 조작하는 것이다.

0. 진짜 URLSession 만들기

진짜와 가짜를 나누고 구분하기 위해선 진짜(기준)를 알아야 한다.