0
我正在寫一個espresso測試,它檢查哪一個未能在FooterView中找到一個TextView,我以編程方式添加到ListView中。在espresso測試中查找TextView的唯一方法是等待在檢查此TextView是否存在之前持續1秒。ListView中的FooterView未找到使用Espresso
// checks if the list view contains an issue that has the text "Do" somewhere
onView(withId(R.id.listView)).check(matches(hasDescendant(withText(containsString("Do")))));
// swipes down to access the load older issues button
onView(allOf(withId(R.id.mainLayout))).perform(swipeUp());
// View listView = shelfActivity.getActivity().findViewById(R.id.listView_footer_textview); // returns the view, even when espresso tells that it does not exist
// Thread.sleep(1000); // need to wait in order to find the footerview of the list view
// check if the load older issues button is here
onView(allOf(withId(R.id.listView_footer_textview), isDisplayed())).check(matches(isDisplayed()));
這的TextView的FooterView內部實際存在的,我可以找到它的同一個地方測試裏面,如果我嘗試用正常findById()方法得到它,但不覺得當我檢查它與濃咖啡。
所以我的問題是: 如果我想檢查一個FooterView內的TextView,我真的必須調用Thread.sleep(1000)來通過測試。對我來說,意式咖啡的巨大優勢在於,我不必等待視圖準備就緒,那麼現在是否沒有咖啡功能會自動執行此操作?
這不是問題,我從來沒有fi找到我的頁腳視圖中的文本視圖,問題是我只有在讓踏面至少睡1秒後才能找到它。同樣的問題仍然存在,如果我添加is(LongListActivity.FOOTER)標準到我的搜索(實際上沒有必要作爲搜索id應該足夠)。 如上所述,當我搜索與shelfActivity.getActivity()。相同的textview時,這個問題也不會發生。findViewById();在那種情況下,我立即找到預期的文本視圖,而不需要睡1秒。 – richard
我不明白這個問題,因爲'但是沒有找到有問題的FooterView',並且在上面的註釋中找不到我的頁腳視圖中的textview。 'R.id.listView_footer'是TextView的id? – nshmura
抱歉,描述不太清楚,我現在編輯它。它無法在頁腳視圖中找到文本視圖,如果在檢查之前我不打電話睡眠(1000)。 – richard