[iOS] XCTest에서 비동기 테스트하기 (XCTestExpectation)
·
iOS/개념 & 개발
서론 UnitTest 사용해보기와 XCTest 성능 측정 (Command Line 환경)에서 UnitTest를 하는 방법과 성능 측정 방법을 다뤘습니다. 이전에는 동기 메서드만 테스트만 다뤄서 이번에는 비동기 테스트에 대해 말해보려고 합니다. 대부분의 앱에는 네트워크 통신이 필요합니다. 네트워크 통신은 오래 걸리는 작업이기 때문에 반드시 비동기로 처리해야 합니다. 같은 이유로 네트워크 테스트도 비동기로 테스트해야 하며, 다른 동기 테스트와 분리해야 합니다. 비동기 테스트 비동기 메서드를 동기 테스트 코드와 똑같이 테스트하면 제대로 테스트할 수 없습니다. 비동기 메서드의 결과가 나오기 전에 테스트 함수가 종료되기 때문입니다. 그래서 비동기 메서드가 종료될 때까지 기다리는 작업이 필요한데요. 이를 위해 XC..
[iOS] Combine 준비하기
·
iOS/개념 & 개발
Combine 준비 TLDR은 처음으로 MVVM을 도입한 프로젝트입니다. 바로 Combine을 도입하진 않았고, 프로퍼티 옵저버인 didSet을 이용해 데이터 바인딩을 구현했습니다. 이제 Combine을 학습해서 도입하고자, 정리하는 포스팅을 한 번 작성하려고 합니다 ㅎㅎ Observable 먼저 기존 Observable에 대해 알아봅시다. Observable 모델은 아래처럼 구현되어 있습니다. final class Observable { typealias Listener = (T) -> Void var listener: Listener? var value: T { didSet { listener?(value) } } init(_ value: T) { self.value = value } func bin..
유정주