我知道有很多這個問題,但我找不到任何東西來幫助我:(Android:濃咖啡不會等到片段或活動顯示,所以每個測試失敗
我試圖使用Espresso用於爲android應用程序生成用戶界面測試打擊依賴項問題後(因爲某些庫在不同版本中包含兩次以作爲其他庫的依賴項)我仍然無法創建工作測試...
I瞭解IdlingResource,但據我瞭解,espresso等待開箱,直到主線程和AsyncTaskPool在運行任何測試之前都處於空閒狀態。
爲了與它取得聯繫,我製作了一個簡單的應用程序,其中包含兩個活動,一個閃屏和一個主要活動。 濺射屏幕包含起始mainActivity
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}, 3000);
我還試圖用的AsyncTask這個,但似乎沒有因爲每次考試無法正常工作之前,像這樣等待三秒鐘。
僅測試檢查是否通過顯示在視圖含有確定文本一個TextView:
onView(withText("DummyText")).check(matches(notNullValue()));
我認爲這將不會是難以建立一個簡單的測試...
因爲我必須對api> = 16進行測試,所以我需要espresso。對我來說,我通過使用uiAutomator(我知道這是爲api> = 18)檢查它,但有智能邏輯等待顯示的東西.....和那完美的作品...
感謝您的諮詢! 我得到它的工作後,我宣佈規則爲 '假' 的第三個參數: '@rule公共ActivityTestRule mMainActivity =新ActivityTestRule <>(SplascreenActivity.class,真,假);' 這樣做,我可以像例如定義行爲。 'doNothing()時(mDeviceService).getDevices();' ,然後通過使用 'mSplashscreenActivity.launchActivity(空)手動啓動活動;'。 我也改變_Handler_與_AsyncTask_並知道測試工作如預期的包含等待,檢查等..... –
grumpyshoe
真的很棒!做得好! – sunlover3
@grumpyshoe我也面臨同樣的問題,在我的應用程序中,我們有一個啓動畫面,可以自動將用戶導航到登錄屏幕,但我的測試不會等待導航到登錄並開始搜索用戶名輸入編輯文本。你能幫我麼。 – Krishnakant