[英]Android: How to perform click action on EditTextPreference using Espresso
我是 UI 測試的新手,尤其是使用 Espresso。 在我的用例中,我需要檢查應用程序是否接受PreferenceScreen
片段內的EditTextPreference
上的輸入文本,但在此之前我需要執行單擊以顯示編輯對話框,然后輸入文本。
這是首選項片段具有編輯小部件的方式:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<EditTextPreference
android:key="@string/pref_stream_target_key"
android:title="@string/pref_stream_target_label"
app:useSimpleSummaryProvider="true" />
<EditTextPreference
android:key="@string/pref_stream_resolution_key"
android:title="@string/pref_stream_resolution_label"
app:useSimpleSummaryProvider="true" />
<EditTextPreference
android:key="@string/pref_stream_bitrate_key"
android:title="@string/pref_stream_bitrate_label"
app:useSimpleSummaryProvider="true" />
<EditTextPreference
android:key="@string/pref_stream_framerate_key"
android:title="@string/pref_stream_framerate_label"
app:useSimpleSummaryProvider="true" />
<EditTextPreference
android:key="@string/pref_stream_peerlatency_key"
android:title="@string/pref_stream_peerlatency_label"
app:useSimpleSummaryProvider="true" />
</PreferenceScreen>
這就是我嘗試執行點擊的方式
with(launchFragmentInContainer<StreamSettingsFragment>()) {
onFragment { fragment ->
Espresso.onData(PreferenceMatchers.withTitle(R.string.pref_stream_target_label))
.perform(ViewActions.click())
}
}
我不確定是否需要進行單擊操作以檢查EditTextPreference
中更改偵聽器背后的邏輯。
使用它運行測試只會讓應用程序保持運行並且什么都不做。 有什么我想念的嗎?
刪除onFragment
位 - 這樣您就可以在主線程上以同步方式直接與 Fragment 交互。 Espresso 設計用於測試線程並自行處理與 UI 的同步:
launchFragmentInContainer<StreamSettingsFragment>()
onData(withTitle(R.string.pref_stream_target_label)).perform(ViewActions.click())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.