3

我有一個「提交」按鈕的用戶註冊表單。基本上,當按下「提交」按鈕時,會生成一個AsyncTask。這個AsysncTask發送一個HTTP請求(使用Apache HttpClient),該請求由輸入形式組成,例如: IC號碼被髮送到服務器。預計會有一些迴應。如何測試異步HTTP請求和響應Android

RegistrationActivity有以下幾點:

public void onCreate(Bundle savedInstanceState) { 
... 
submitBtn.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       sendActivation(v); 
      } 
     }); 
... 
} 
public void sendActivation(View v) { 
     EditText text = (EditText) findViewById(R.id.InputIcNo); 
     if (text.getText().length() == 0) { 
      showErrorMessage("IC No. cannot be blank!"); 
      return; 
     } 

     mProcess = new AsyncProcess(this, this.getApplicationContext()); 
     mProcess.initActivation(text.getText().toString(), null); 
     mProcess.execute(); 
    } 

RegistrationActivityUnitTest:

ImageButton submitBtn = (ImageButton) this.activity.findViewById(R.id.BtnSubmit); 
     assertNotNull(submitBtn); 
     submitBtn.performClick(); 
// I don't know what to do from here! 

如何測試使用的AsyncTask發送HTTP請求和接收響應?

我很高興將其分解並在一次測試1件小東西
例如,首先,按下按鈕時AsyncTask是否運行?
其次,AsyncTask是否發送HTTP請求?
接下來,應用程序是否收到相同HTTP請求的響應?

回答

0

如果我理解你,你的問題是你在哪裏可以檢查異步請求的響應。也許看看thispost。我不知道是否有更好的soloution,但我通過傳遞一個Observer對象作爲回調函數來做到這一點。在你的情況下,執行「更新」coud檢查請求的迴應。

+0

嗨@MatthiasH,我的問題是關於Android JUnit測試,現在關於如何使用AsyncTask – ericn

+0

噢好吧,也許看看http://developer.android.com/reference/android/net/ConnectivityManager。 HTML,但我不知道你是否可以派生http請求,哪裏發送 –