はじめに
UIのユニットテスト(≠UIテスト)でテストコードを書く場合、以下のフローで書きたいでしょう。
UI操作→表示された画面の検証
で調べてた所、単体でうまくやってくれるやり方、ライブラリがわかりませんでした。
この問題はKIFとFBSnapshotTestCaseを共存させる事によって解決することができます。
実際のコード例
以下の関数を定義します(出典:https://blog.karumi.com/ui-testing-for-ios/)。
func tester(file: String = #file, _ line: Int = #line) -> KIFUITestActor {
return KIFUITestActor(inFile: file, atLine: line, delegate: nil)
}
FBSnapshotTestCaseのサブクラスで以下のように呼び出すことができます。
// UI操作
tester().tapView(withAccessibilityIdentifier:"閉じるボタン")
...
// 画面の検証
FBSnapshotVerifyView(view)