相关疑难解决方法(0)

使用Android Test Framework进行Android AsyncTask测试

我有一个非常简单的AsyncTask实现示例,并且在使用Android JUnit框架测试它时遇到问题.

当我在普通应用程序中实例化并执行它时,它工作得很好.但是当它从任何Android测试框架类(即AndroidTestCase,ActivityUnitTestCase,ActivityInstrumentationTestCase2等)执行时,它表现得很奇怪:

  • doInBackground()正确执行方法
  • 然而,它没有任何调用它的通知方法(onPostExecute(),onProgressUpdate()等) -只是默默忽略它们没有表现出任何错误.

这是非常简单的AsyncTask示例:

package kroz.andcookbook.threads.asynctask;

import android.os.AsyncTask;
import android.util.Log;
import android.widget.ProgressBar;
import android.widget.Toast;

public class AsyncTaskDemo extends AsyncTask<Integer, Integer, String> {

AsyncTaskDemoActivity _parentActivity;
int _counter;
int _maxCount;

public AsyncTaskDemo(AsyncTaskDemoActivity asyncTaskDemoActivity) {
    _parentActivity = asyncTaskDemoActivity;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    _parentActivity._progressBar.setVisibility(ProgressBar.VISIBLE);
    _parentActivity._progressBar.invalidate();
}

@Override
protected String doInBackground(Integer... params) {
    _maxCount = params[0];
    for (_counter = 0; _counter <= _maxCount; _counter++) {
        try { …
Run Code Online (Sandbox Code Playgroud)

junit android

94
推荐指数
5
解决办法
6万
查看次数

标签 统计

android ×1

junit ×1