我有一个带有“提交”按钮的用户注册表单。基本上,当按下“提交”按钮时,会生成AsyncTask。此AsysncTask发送HTTP请求(使用Apache HttpClient
),该请求由表单中的输入组成,例如IC编号被发送到服务器。预计会有一些回应。
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请求和接收响应?
我非常乐意将其分解并一次测试一件小事 例如首先,当按下按钮时AsyncTask是否运行? 第二,AsyncTask是否发送HTTP请求? 接下来,应用程序是否收到相同HTTP请求的响应? 等
答案 0 :(得分:0)
如果我理解你,你的问题是在哪里可以检查异步请求的响应。也许看看thispost。我不知道是否有更好的解决方案,但我通过传递一个Observer对象作为回调函数来做到这一点。在您的情况下,“update”coud的实现检查请求的停止。