我正在使用futuresimple的Android Floating Action Button。我想用Espresso來創建與之交互的UI測試。 multiple_actions
只是打開浮動操作按鈕(FAB)菜單的按鈕。 draw_fab
是單擊multiple_actions
時出現的浮動操作按鈕之一。點擊draw_fab
開始一個新的android活動,在這個活動中,我希望按一個id爲componentMenuButton
的標準按鈕(它本身會顯示一個菜單)。Android上的Espresso UI測試浮動操作按鈕菜單項
@Test
public void simpleCircuitTest() {
onView(withId(R.id.multiple_actions)).perform(click());
onView(withId(R.id.draw_fab)).perform(click());
onView(withId(R.id.componentMenuButton)).perform(click());
// other stuff...
}
當我運行這個測試時,我看到第一次點擊工作和浮動菜單按鈕顯示。然而,點擊draw_fab
的呼叫似乎沒有任何影響,因此在達到點擊componentMenuButton
的呼叫時,出現No views in hierarchy found matching: with id...
錯誤。
這是我困惑的地方。
@Test
public void simpleCircuitTest() {
onView(withId(R.id.draw_fab)).check(matches(isDisplayed()));
View v = mActivityRule.getActivity().findViewById(R.id.draw_fab);
Log.d(TAG, String.valueOf(v.getVisibility()==v.VISIBLE));
Log.d(TAG, String.valueOf(v.isShown()));
Log.d(TAG, String.valueOf(v.isEnabled()));
onView(withId(R.id.multiple_actions)).perform(click());
onView(withId(R.id.draw_fab)).check(matches(isDisplayed()));
Log.d(TAG, String.valueOf(v.getVisibility()==v.VISIBLE));
Log.d(TAG, String.valueOf(v.isShown()));
Log.d(TAG, String.valueOf(v.isEnabled()));
}
以上就是我試圖搞清楚是怎麼回事。當我運行這個測試時,即使我還沒有點擊multiple_actions
FAB,isDisplayed
通過,並且所有的日誌輸出都是真的。然後在下一部分中,Espresso點擊multiple_actions
並再次輸出所有信息。所以就好像點擊multiple_actions
來點擊draw_fab
點擊對測試通過沒有任何影響。這不是應該如何?
我的預感現在是我用於浮動動作按鈕的回購單不支持Espresso使用?這或那裏有一些特別的關於FABs或關於Espresso的基本信息,我錯過了。這是什麼?