Android单元测试Junit (一) -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    配置单元测试环境,打开AndroidManifest.xml,具体代码如下所示:

   

   

    package="com.milan.junit"

    android:versionCode="1"

    android:versionName="1.0" >

   

    android:minSdkVersion="16"

    android:targetSdkVersion="19" />

   

    android:allowBackup="true"

    android:icon="@drawable/ic_launcher"

    android:label="@string/app_name"

    android:theme="@style/AppTheme" >

   

    android:name="com.milan.junit.MainActivity"

    android:label="@string/app_name" >

   

   

   

   

   

   

   

   

   

   

    android:name="android.test.InstrumentationTestRunner"

    android:targetPackage="com.milan.junit" />

   

    说明:

    1、 这句,放在application内部,

Android单元测试Junit (一)

    2、android:targetPackage 这个属性,一般为应用程序的包名,必须和xml中manifest节点的package同名。

    3、创建一个包com.milan.service,这个包下面再创建一个类 Person,用于测试的时候调用。

    package com.milan.service;

    public class Person {

    public int getAge(String age){

    return new Integer(age);

    }

    }

    4、在com.milan.junit包下面,建一个PersonTest类,代码如下:

    package com.milan.junit;

    import com.milan.service.Person;

    import android.test.AndroidTestCase;

    public class PersonTest extends AndroidTestCase {

    ///用例1,传入非数字

    public void test01(){

    Person person = new Person();

    person.getAge("milan");

    }

    //用例2,传入数字

    public void test02(){

    Person person = new Person();

    person.getAge("1");

    }

    }

    5、选中PersonTest.java,右键选择Run As 选择Android Junit Test 运行单元测试,如图:

    从上图可以看到,test01的测试结果为失败,

电脑资料

Android单元测试Junit (一)》(http://meiwen.anslib.com)。失败原因为:java.lang.NumberFormatException: Invalid int: "milan",

    test02的测试结果为通过。

    如果没有Junit运行结果,可以在eclips的Window菜单下,选择Show View--Other--Java--Junit 中打开。

    6、运行单个测试用例

    eclips的Window菜单下,选择Show View--Other--General--Outline打开大纲视图,右键测试用例,即可运行单个测试用例。如图:

    同理,如果需要执行整个项目的测试用例,可选中整个项目,用Android Junit Test运行即可。

    7、断言

    当我们获得程序的运行结果,我们希望Junit能够自动判断 将实际结果和期望结果是否一致。这个时候我们就可以用到Junit自带的断言。

    修改PersonTest类,为以下代码:

    package com.milan.junit;

    import com.milan.service.Person;

    import android.test.AndroidTestCase;

    public class PersonTest extends AndroidTestCase {

    ///用例1,传入非数字

    public void test01(){

    Person person = new Person();

    int i= person.getAge("milan");

    assertEquals(1, i);

    }

    //用例2,传入数字,断言有message

    public void test02(){

    Person person = new Person();

    int i= person.getAge("1");

    assertEquals("传入数字",2,i);

    }

    //用例2,传入数字,断言无message

    public void test03(){

    Person person = new Person();

    int i= person.getAge("1");

    assertEquals(1,i);

    }

    }

    如果传入了message,一旦用例不通过,会在右边的错误详细里,列出message。

    8、其他断言

    JUnit提供丰富的断言,来满足我们不同的比对需求。按住Ctrl键,点击代码中的assertEquals,可以看到Assert类里面多支持的断言函数的参数类型:

    大家有空可以多试试。这里就不一一讲解了。

    其他信息

    如出现Test run failed:Unable to find instrumentation target package错误

    是因为 android:targetPackage="com.milan.junit" 必须和

   

    package="com.milan.junit"

    package相同的包名

最新文章