我剛開始學習使用Robotium來測試我的應用程序。我寫了重置統計列表的測試用例,然後檢查,如果值等於0的代碼如下:Robotium - 等待活動的任務完成
public void testClearStats() {
solo.clickOnButton("Clear Stats");
solo.clickOnButton("Yes");
TextView views = (TextView) solo.getView(R.id.textViewsNum);
TextView prompts = (TextView) solo.getView(R.id.textPromptsNum);
TextView completions = (TextView) solo.getView(R.id.textCompleteNum);
assertEquals("0", views.getText().toString());
assertEquals("0", prompts.getText().toString());
assertEquals("0", completions.getText().toString());
}
當它不應該,因爲它被檢查的測試失敗在重置結果之前,TextViews的值。爲了解決這個問題,我說這行:
solo.waitForActivity(solo.getCurrentActivity().toString());
這種說法測試通過,但它似乎採取不必要的長時間才能完成。我想知道是否有更好的/正確的方式來做這件事,或者這是做這件事的最好方法嗎?
感謝
好吧我現在理解它背後的邏輯。然而,很難找到需要等待的東西。通過solo.waitForText()方法,我可以選擇具體查看哪些TextView?我在這個屏幕上有很多TextView,有些可以在清除統計之前以0開始。 –
實際上沒有跡象表明統計數據已被清除,除了所有值都被重置。但是,如果所有這些值都已經爲0,那麼您無法確定測試是否正確執行,因爲這些值不會更改。 –
你回答了你自己的問題,也是爲什麼在TDD你沒有通過測試失敗之前,你需要確保你的指標實際上發生了變化,所以你應該確保在重置之前值不是0,否則你永遠不會當然。儘管如此,對於整個測試而言,這是一個問題,而不是機器人。至於等待的部分,我會添加一些代碼來幫助你! –