(转)如何进行Android单元测试

如何进行Android单元测试

Menifest.xml中加入:

<application>中加入:

<uses-libraryandroid:name="android.test.runner"/>

<application>外面加入:

<uses-permissionandroid:name="android.permission.RUN_INSTRUMENTATION"/>

<instrumentationandroid:name="android.test.InstrumentationTestRunner"android:targetPackage="name.feisky.android.test"

android:label="Testformyapp"/>

编写单元测试代码:必须继承自AndroidTestCase类

packagename.feisky.android.test;

importandroid.test.AndroidTestCase;

importjunit.framework.Assert;

publicclassMyTestextendsAndroidTestCase{

privatestaticfinalStringTag="MyTest";

publicvoidtestSave()throwsThrowable

{

inti=4+8;

Assert.assertEquals(5,i);

}

publicvoidtestSomethingElse()throwsThrowable{

Assert.assertTrue(1+1==12);

}

}

执行测试

IntelliJ中:

eclipse中:右键runasAndroidJUnitTest

命令行工具:

adbshellaminstrument-wname.feisky.android.test/android.test.InstrumentationTestRunner

也可以新建一个测试项目进行测试

New>Project>Android>AndroidTestProject.

添加测试用例类

添加新类,基类设置为android.test.ActivityInstrumentationTestCase2<HelloAndroid>

添加构造函数

添加setUp()方法,这个方法在所有的测试之前进行变量和测试环境的初始化。

@Override

protectedvoidsetUp()throwsException{

super.setUp();

mActivity=this.getActivity();

mView=(TextView)mActivity.findViewById(com.example.helloandroid.R.id.textview);

resourceString=mActivity.getString(com.example.helloandroid.R.string.hello);

}

添加testPreconditions()方法,检查初始化环境,只执行一次

publicvoidtestPreconditions(){

assertNotNull(mView);

}

添加单元测试

publicvoidtestText(){

assertEquals(resourceString,(String)mView.getText());

}

测试 Run As... > Android JUnit Test

相关推荐