🤖

Jetpack Compose × UiAutomator で詰まった時の備忘録

2024/09/14に公開

TestTag が見つからない

事象

UI テストを記述していて testTag()Modifier にセットしているのにも関わらず、UiAutomatorBy.res() で見つからなかった。

解決策

上位の階層で testTagsAsResourceId を有効にすることで UiAutomatortestTag() を伝播させることができるとのこと。

Scaffold(
    // Enables for all composables in the hierarchy.
    modifier = Modifier.semantics {
        testTagsAsResourceId = true
    }
){
    // Modifier.testTag is accessible from UiAutomator for composables nested here.
    LazyColumn(
        modifier = Modifier.testTag("myLazyColumn")
    ){
        // Content
    }
}

https://developer.android.com/develop/ui/compose/testing/interoperability?hl=ja#uiautomator-interop

参考

https://developer.android.com/compose
https://developer.android.com/training/testing/other-components/ui-automator?hl=ja

Discussion