忙しい人向けの XCTSkip your tests - #WWDC20
冒頭
とくにインテグレーションテストにおいて、簡単にはモックできない要件や依存関係がある。例えば、iPad 特有の機能は iPhone ではテストできないし、メンテナンスのために定期的にオフラインになるサーバのテストも難しい。これらはいずれも実行時にしか判断できない。
テストの実行条件を満たさない時に、早期 Return または失敗させる方法が考えられる。どちらも欠点があり、前者はテストしていないのに成功としてマークされるし、後者は失敗した原因を調査するコストが発生する。
XCTSkip
Xcode 11.4 から XCTSkip が導入され、これまでの成功 or 失敗に加え、スキップというテスト結果を示せるようになった。
実際にスキップされると、Xcode 上で先程のアイコンが表示される。Test Navigator / Report Navigator でも確認できるし、
CI でのテスト結果 Bundle からも確認できる。
例外をスローする API として、XCTSkipIf と XCTSkipUnless が用意されている。前者は条件が true の時、後者は false の時にスキップされる。
XCTSkip 構造体を直接生成することもできる。これは guard と組み合わせて利用する際に便利。
まとめ
特定の条件で実行できないテストは、XCTSkip を利用して明示的にスキップすることで、全体のテスト結果がより明確になる。
免責
・本記事は公開情報のみに基づいて作成されています。
・要約(意訳)のみなので、詳細はセッション動画をご確認ください。
関連記事
役に立った記事などありましたらサポート頂けると嬉しいです。