前面的步骤简单说一下, 新建一个单元测试工程, 然后新建测试类, 勾选需要测试的方法,详细可参考下面的链接
http://www.cnblogs.com/meizixiong/archive/2013/01/06/2847731.html
http://www.blogjava.net/qileilove/archive/2014/08/18/417055.html
Manifest 如下, 这里需要添加instrumentation和<uses-library android:name="android.test.runner" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="xxx" />
<application
android:icon="@drawable/ic_launcher"
android:label="test for news" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
下面是写好后的测试类, 代码只作参考,
import android.test.AndroidTestCase;
public class NewsRequestWrapperTest extends AndroidTestCase {
public static final String TAG = "NewsRequestWrapperTest";
protected void setUp() throws Exception {
super.setUp();
}
public void testListTopNews() {
Log.i(TAG, "Junit test testListTopNews");
mRequestWrapper.listTopNews(MAX_TOP_NEWS, new AsyncNewsResponseHandler() {
@Override
public void onSuccess(List<News> newsList) {
assertTrue( newsList.size() == 3);
}
@Override
public void onFailure() {
assertTrue( false );
}
});
}
}
后面是与java junit不同的地方, 因为 extends AndroidTestCase, 所以最后可以生成apk, 把这个apk 安装到手机中或模拟器中,
然后可以用adb shell am 命令的方式运行我们写好的单元测试。
命令如下:
adb shell am instrument -w packagename/android.test.InstrumentationTestRunner
这里换成自已测试工程的包名即可, 这样就可以运行单元测试用例了, 此处的链接如下:
http://blog.csdn.net/xianming01/article/details/7463066
当然在我们的测试类中, 有可能很很多异步的操作, 如线程, AsyncTask, http等, 对于这类情况,
处理如下:
http://www.cnblogs.com/china-ldw/p/3446229.html