Googleで検索するとすぐにいくつか情報が見つかるのですが、次のようなものが多いです。
onData(
allOf(
`is`(instanceOf(Preference::class.java)),
withKey("setting_key_runpo")
)
).perform(click())
しかしこの方法だと色々記述を変えて試してもNoMatchingViewException
となってしまいます。
androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: is assignable from class: class android.widget.AdapterView
こちらを参考にすると、どうやら今は内部でRecyclerViewを使っているので、onDataを経由する方法は使えないようです。
そこでこのようにテストを書くことで無事に実行できるようになりました。
onView(withId(R.id.recycler_view)).perform(RecyclerViewActions.scrollToPosition<RecyclerView.ViewHolder>(0))
onView(withText("表示されている文字")).check(matches(isDisplayed()))
R.id.recycler_view
は固定でこの値です。
キーでアクセスができないので少し不便ですが、とりあえずテストがかけるようになったので良しとしましょう。