忙しい人向けの XCTSkip your tests - #WWDC20

画像1

冒頭

とくにインテグレーションテストにおいて、簡単にはモックできない要件や依存関係がある。例えば、iPad 特有の機能は iPhone ではテストできないし、メンテナンスのために定期的にオフラインになるサーバのテストも難しい。これらはいずれも実行時にしか判断できない

画像2

テストの実行条件を満たさない時に、早期 Return または失敗させる方法が考えられる。どちらも欠点があり、前者はテストしていないのに成功としてマークされるし、後者は失敗した原因を調査するコストが発生する。

画像3

XCTSkip

Xcode 11.4 から XCTSkip が導入され、これまでの成功 or 失敗に加え、スキップというテスト結果を示せるようになった。

画像4

実際にスキップされると、Xcode 上で先程のアイコンが表示される。Test Navigator / Report Navigator でも確認できるし、

画像5

CI でのテスト結果 Bundle からも確認できる。

画像6

例外をスローする API として、XCTSkipIfXCTSkipUnless が用意されている。前者は条件が true の時、後者は false の時にスキップされる。

画像7

XCTSkip 構造体を直接生成することもできる。これは guard と組み合わせて利用する際に便利。

画像8

まとめ

特定の条件で実行できないテストは、XCTSkip を利用して明示的にスキップすることで、全体のテスト結果がより明確になる。

画像9

免責

・本記事は公開情報のみに基づいて作成されています。
・要約(意訳)のみなので、詳細はセッション動画をご確認ください。

関連記事


役に立った記事などありましたらサポート頂けると嬉しいです。