Android单元测试Junit (一)

1、在eclips中建立一个Android工程,具体信息如下:

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.milan.junit"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.milan.junit.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!--使用单元测试库-->
        <uses-library android:name="android.test.runner"/>
    </application>
    <!-- 声明Android框架和目标测试包-->
    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.milan.junit" />
</manifest>

说明:

      1、<uses-library android:name="android.test.runner"/> 这句,放在application内部。

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的测试结果为失败。失败原因为: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" 必须和

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.milan.junit"
package相同的包名

时间: 2024-10-24 04:23:23

Android单元测试Junit (一)的相关文章

Android单元测试Junit的配置

要进行Android的单元测试首先的配置指令集和用户库,下面是详细的配置步骤 @1:指令集配置(instrumentation) 1.1 打开AndroidManifest.xml文件,点击instrumentation选项 点选ADD后 点instrumentation选项,指令集就添加成功 name必须指定为android.test.InstrumentationTestRunner Target Package为单元测试的包名 Lable随便指定 这样instrumentation就添加成

Android:单元测试Junit的配置

在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性.......... 第一步:首先在AndroidManifest.xml中加入下面代码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.

Android 单元测试 junit 的配置和使用

现在的集成ADT后Eclipse都可以直接创建Android Test Project 如图所示: 命名后选择你要测试的单元程序,比如我自己准备测试sms,便可以如图所示那样选择 本人新建的测试工程为junitsms 本人要测试sms工程中testapp.java下一个最简单的函数 1 public class testapp { 2 3 public int add (int a,int b) 4 { 5 int sum=a+b; 6 return sum; 7 } 8 } 新建一个测试类ap

Android 单元测试Junit

新建测试类,继承服务接口: 代码当中的异常要抛给框架: 运行测试实例: 实例错误解决方法: 在minifest.xml中添加两句话: 测试成功: 测试失败: 新建项目测试另一个项目:

Android Day02-Android中单元测试(junit测试)&monkey测试

Android中junit测试有2种实现方式 第1种:一般Android工程的实现方式 1.在清单文件中添加2项内容 首先在AndroidManifest.xml中加入下面红色代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.action" android:versionCode="1"  android:v

通过JUnit进行Android单元测试

要了解android单元测试,首先必须了解junit 什么是 JUnit ? JUnit是采用测试驱动开发的方式,也就是说在开发前先写好测试代码,主要用来说明被测试的代码会被如何使用,错误处理等:然后开始写代码,并在测试代码中逐步测试这些代码,直到最后在测试代码中完全通过. 现简要说JUnit的4大功能 管理测试用例.修改了哪些代码,这些代码的修改会对哪些部分有影响,通过JUnit将这次的修改做个完整测试.这也就JUnit中所谓的TestSuite. 定义测试代码.这也就是JUnit中所谓的Te

阿里知识储备之二——junit学习以及android单元测试

一,junit框架 http://blog.csdn.net/afeilxc/article/details/6218908 详细见这篇博客 juit目前已经可以和maven项目进行集成和测试,而且貌似不需要单独引入junit的组件就可以(maven自身已经引入?) 注意一下以下几个标记 @BeforeClass,@Before,@Test(timeout = 50),@After,@Before,@Test(expected = Exception.class),@After,@Before,

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

android单元测试

http://blog.csdn.net/duancanmeng/article/details/7458851 第一步:在AndroidManifest.xml中加入如下两段代码: 代码一 <uses-library android:name="android.test.runner"/>代表把第三方中的依赖库引入进来 代码二 <instrumentation android:name="android.test.InstrumentationTestRu