Combine を使ったコードのテストを Scheduler で操る方法とその仕組み by アイカワ

iOSDC Japan 2021
採択
2021/09/18 14:50〜
Track A
レギュラートーク(40分)

Combine を使ったコードのテストを Scheduler で操る方法とその仕組み

kalupas0930 アイカワ kalupas0930

WWDC は async/await で盛り上がっていて Combine ロスなので、Combine について発表したいと思います。

Combine は複数のイベントを扱うのが楽だったり、debounce operator などを利用した時間を制御するような処理も容易に記述できるので、有用なシーンはまだまだあると個人的には思っています。
しかし、Combine を使って時間の制御などを行い始めるとテストが難しくなっていきます...

このトークでは、そんな Combine を使ったコードのテスト方法と仕組みについて以下のような内容で発表したいと思っています。

・ViewModel 内で Combine を利用するコードの基本的なテスト方法
・combine-schedulers というライブラリによって Combine の時間を操りテストを劇的に改善する方法(より正確なテスト・テストの実行時間の削減が可能)
・combine-schedulers の仕組み

発表で紹介させて頂く combine-schedulers は、最近話題になっている The Composable Architecture(TCA) や isowords の作者である Point-Free さんが作っているライブラリで、TCA との相性も良かったりします。

しかし、このライブラリは TCA には依存しておらず、TCA を利用していないコードでも十分に効果を発揮できるものになっています(本トークも TCA に依存しない形式にします)。

さらに、このライブラリには他にも様々な機能があります。
特に UIKit や SwiftUI のアニメーションを操る機能もあるのですが、時間に余裕があれば紹介させて頂きたいと思っています!