2015-10-21 65 views
1

我有Espresso測試並希望應用程序保持在測試完成時的確切活動。我需要繼續與應用程序進行交互。安卓意式濃縮咖啡讓應用程序在測試後運行

@SmallTest 
public void testOpenNavigationDrawer() 
{ 
    Espresso.onView(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.content_frame)).perform(ViewActions.swipeRight()); 
    ListView lvDrawerMenu = (ListView) getActivity().findViewById(com.eleks.espresso.example.app.R.id.lvDrawerMenu); 
    Preconditions.checkNotNull(lvDrawerMenu, "lvDrawerMenu is null"); 
    final int count = lvDrawerMenu.getAdapter().getCount(); 
    Preconditions.checkPositionIndex(2, count, "No 1 index " + count + " size"); 
    Object obj = lvDrawerMenu.getItemAtPosition(2); 
    Espresso.onView(Matchers.allOf(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.tvItem), ViewMatchers.hasSibling(ViewMatchers.withText(obj.toString())))).perform(ViewActions.click()); 
} 

我該怎麼做? 謝謝!

回答

1

對不起,但這是不可能的。

我覺得你對自動化測試不夠了解。 \

Espresso,Robotium,Calabash和其他UI測試框架用於短期測試事件。它模擬用戶的特定行爲 - 運行應用程序,執行一些技巧和(如果成功)而不是關閉應用程序。

當然,Espresso允許您創建自定義閒置資源,並將其註冊到應用程序中。此外,使測試休眠特定時間的最簡單方法是使用方法Thread.sleep(time_in_miliseconds),但正如我所說的,它違背了自動測試的想法。

3

如果您希望在特定測試後運行該應用程序,那麼您可以執行某些手動交互,甚至只需要更長時間查看最終結果。您可以在測試結束時放置一個Thread.sleep(MS);,使其在您想要的時間內坐在那裏。

想要看到您可以在睡眠後(以及您手動進行的任何交互)進行另一次檢查並繼續測試。很明顯,你不想經常這樣做,因爲它不會爲自動測試做好準備。