iOS 광고 트래킹, URL 요청 검증, 이제 걱정 끝!
by DD
1년 전
조회수 6
URLProtocol을 활용하여 광고 이벤트 발생 시 URL 요청을 가로채는 Proxy 구현
UITest를 통해 실제 사용자 환경과 유사하게 광고 이벤트 트리거 및 URL 요청 검증
Fake 객체 및 launchEnvironment를 활용하여 테스트 데이터 유연성 확보
URLProtocol을 활용한 트래킹 요청 가로채기
URLProtocol을 상속받아 CustomURLProtocol을 구현하여, 광고 트래킹 URL 요청을 가로챈다. 구체적으로, startLoading() 메서드를 오버라이드하여 URL을 저장소에 저장하고, 임의의 응답을 반환한다. 따라서, 실제 네트워크 요청을 검증하고, 광고 트래킹 데이터의 정확성을 확보한다.
UITest와 공유 저장소를 활용한 검증
UITest 환경에서 accessibilityIdentifier를 활용하여 UI 요소를 찾아 광고 이벤트를 트리거한다. 반면, App과 UI Test 간 데이터 공유를 위해 SIMULATOR_SHARED_RESOURCES_DIRECTORY를 활용한 공유 저장소를 사용한다. 따라서, 실제 사용자 환경과 유사한 환경에서 URL 요청 여부를 검증한다.
Fake 객체와 launchEnvironment를 이용한 테스트 데이터 관리
테스트 케이스별로 다른 JSON 데이터를 사용하기 위해, Fake 객체와 launchEnvironment를 활용한다. 구체적으로, SearchResultRepository 프로토콜을 정의하고, 실제 구현체와 Fake 구현체를 분리한다. 따라서, 테스트 데이터의 유연성을 확보하고, 테스트 코드의 유지보수성을 향상시킨다.