1. Menifest.xml中加入:

    <application>中加入:

    <uses-library android:name=”android.test.runner” />

    <application>外面加入:

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

    <instrumentation android:name=”android.test.InstrumentationTestRunner” android:targetPackage=”name.feisky.android.test”

    android:label=”Test for my app”/>

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

    package name.feisky.android.test;

     

    import android.test.AndroidTestCase;

    import junit.framework.Assert;

     

    public class MyTest extends AndroidTestCase {

    private static final String Tag=”MyTest”;

     

    public void testSave() throws Throwable

    {

    int i=4+8;

    Assert.assertEquals(5,i);

    }

     

    public void testSomethingElse() throws Throwable {

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

    }

     

    }

  3. 执行测试

    IntelliJ中:

     

    eclipse中:右键 run as Android JUnit Test

    命令行工具:

    adb shell am instrument -w name.feisky.android.test/android.test.InstrumentationTestRunner

     

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

 

  1. NewProjectAndroidAndroid Test Project.

  1. 添加测试用例类

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

  2. 添加构造函数

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

    @Override

    protected void setUp() throws Exception {

    super.setUp();

    mActivity = this.getActivity();

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

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

    }

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

    public void testPreconditions() {

    assertNotNull(mView);

    }

  4. 添加单元测试

    public void testText() {

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

    }

  5. 测试 Run As… > Android JUnit Test