-1
使用Android測試框架測試Android應用程序時,如何使測試等待我在繼續之前等待網絡響應。我不想使用Thread.sleep,因爲我不確定要等多久。還嘗試了waitForIdleSync(),但它似乎不工作。有沒有其他方法?Android單元測試
我有enterCredentials方法輸入用戶名和密碼,然後單擊登錄按鈕。在獲取用戶對象以驗證憑據之前,我需要等待一段時間才能獲得用戶對象並將其保存在數據庫中。我想要一個替代Thread.sleep()在這裏。我已經嘗試了waitForIdleSync(),但似乎沒有工作。
@Override
protected void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
enterCredentials();
Thread.sleep(2000);
testLoggedInUser();
}
public void testLoggedInUser() {
mMyApplication = this.getInstrumentation().getTargetContext().getApplicationContext();
User user = mMyApplication.getUser();
String email = user.getEmail();
assertEquals(EMAIL, email);
}
public void enterCredentials() {
final EditText mUsername = (EditText) mActivity.findViewById(R.id.email);
final EditText mPassword = (EditText) mActivity.findViewById(R.id.password);
final Button login = (Button) mActivity.findViewById(R.id.logIn);
mActivity.runOnUiThread(new Runnable() {
public void run() {
mUsername.setText(EMAIL);
mPassword.setText(PASSWORD);
login.performClick();
}
});
}
..很??請細化你的問題,因爲我不明白你的問題是什麼。 – cybermonkey
你正在運行什麼樣的測試?,除了接受/集成測試你的測試應該是快速和獨立的,你應該模擬/間諜/ ......你的界限,特別是網絡請求 – tkanzakic
我想在我的應用程序中測試登錄功能,我輸入憑據併發送發佈請求,服務器返回給我一個用戶對象。所以在測試時我想等待接收這個用戶對象,然後我可以驗證用戶憑證。那麼在這種情況下,我該如何讓測試等待呢? – user3773337