XCTest
XCTest というフレームワークを利用することで、 iOS アプリの自動テストを簡単に実装することができます。
Reference: https://developer.apple.com/documentation/xctest
デバッグ
XCUIApplication.debugDescription
function を利用することで、テスト対象のアプリの UI の要素、およびそれらの階層構造を知ることができます。
テストが期待通りに動かなかった際に、デバッグのために以下のようなコードをテストコードに挿入することがよくあります。
print(app.debugDescription)
Reference: https://developer.apple.com/documentation/xctest/xcuielement/1500909-debugdescription
特定の UI 要素の取得方法
SwiftUI において以下のように NavigationLink が複数表示(entries
に含まれる要素の数だけ NavigationLink が表示)される場合、
ForEach(entries, id:\.self) { entry in
NavigationLink(destination: DetailView(entry: entry)) {
CompactView(entry: entry)
}
.accessibility(identifier: "EntryNavigationLink")
}
テストコードにおいては以下のように identifier
を利用することで要素の数(entries
の数)を確認できる。
app.buttons.matching(identifier: "EntryNavigationLink").count