🍎

ListのXCTest - UITest

に公開

はじめに

SwiftUIでListを使っていて、UIテスト用にaccessibilityIdentifierを設定するまでは良かった。
ただ、ListのUI要素を取得する方法が結構探しても出てこなかったので、ここに書いておく。

この記事は、XCUITest初心者向けと思ってください。

前提

下記のようにListにaccessibilityIdentifierを設定していること。

List(self.viewModel._repositories) { repo in
    NavigationLink {
        // UI
    } label: {
        // Label UI
    }
}
.scrollDismissesKeyboard(.immediately)
.accessibilityIdentifier("search.repositoryList")

ListのUI要素を取得する方法

app.collectionViewsで取得できた。

let app = XCUIApplication()
app.launch()
let list = app.collectionViews["search.repositoryList"]

どうやって見つけた?

app.debugDescriptionをprintして、すべての要素を出力して確認した。

let app = XCUIApplication()
app.launch()
print(app.debugDescription)

そしたら以下の部分を発見したので解決に至った。

CollectionView, 0x10a804930, {{0.0, 162.3}, {402.0, 711.7}}, identifier: 'search.repositoryList'

終わりに

探しても全然出てこなかったので苦戦した。
もしかしてドキュメントに書いてあったのかな。
まあ、こんな感じでちゃんと確認するのが大事ですね。

Discussion