RxBlocking은 바로 전 포스팅에서 정리했던 RxTest와 같은 TestScheduler는 없이 Observable의 Event방출을 검증하는 방법입니다. 단순히 Observable이 특정값들을 방출하는 것을 검증할 때는 RxTest가 아니라 RxBlocking만으로 충분할 것입니다. RxBlocking은 Observable의 next이벤트를 배열로 변환하는 방법을 제공하여, 해당 값을 TestAssertion으로 테스팅할 수 있도록 해줍니다. Observable에 .toBlocking()을 사용하면 Observable을 BlockingObservable로 전환해주고, BlockingObservable은 .toArray()를 통해 next이벤트들을 complete이벤트가 발생할 때까지 배열로 전환시..
기능을 구현하는 것도 중요하지만, '구현된 기능이 의도한 대로 당연하게 동작하는가?'를 테스트해보는 테스트 코드의 작성도 중요합니다. 배포를 하기 전에 사전에 문제를 발견할 수 있는 좋은 방법이며, 테스트가 용이한 코드를 작성하는 것 자체가 코드의 질을 높여줍니다. Xcode에서는 UnitTest, UITest를 위해 XCTest라는 framework를 제공합니다. XCTest를 작성하는 방법은 다음과 같습니다. (1) XCTestCase를 상속받는 클래스를 만듭니다. (2) setUp 메서드를 override한 후 작성해 주면, 테스트 코드가 동작하기 전에 호출되어 테스트하는데 필요한 리소스들을 미리 세팅해 줄 수 있습니다. (3) test로 시작하는 메서드를 작성하고 테스트 코드를 작성해줍니다. fi..