在android中使用单元测试框架

来源:互联网 发布:淘宝推广怎么做 编辑:程序博客网 时间:2024/05/18 06:19

单元测试简介:单元测试简单来说就是测试某个app的功能时,不需要启动app

Android中单元测试的实现方式:

1、创建一个android工程,然后创建一个继承自单元测试内的junitTest类,junitTest中的代码如下

package com.fyt.junitdemo;import android.test.AndroidTestCase;import android.util.Log;public class junitTest extends AndroidTestCase {    public void test() {        Log.d("MainActivity", "测试框架跑起来了");    }}

2、在配置文件中添加下面的指令集

  <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.fyt.junitdemo">    </instrumentation>
指令集中的属性介绍:

android:targetPackage="com.fyt.junitdemo":设置待测试的apk的目标包名


3、在Application节点下添加导入的类库

  <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="com.fyt.junitdemo">    <!--第二个属性表示目标包名-->    <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.fyt.junitdemo">    </instrumentation>    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <uses-library android:name="android.test.runner"/>        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

4、运行测试方法,选中test()方法




选择Run test()执行test()方法



显示下图所示的绿色的进度条表示执行成功


查看log信息,可以看到在logcat中输出了一条在代码中设置的log信息



使用断言判断实际值与期望值,是否一致,当实际值与期望值不一致时会报错

package com.fyt.junitdemo;import android.test.AndroidTestCase;public class junitTest extends AndroidTestCase {    public void test() {        int result = add(3, 5);        //断言,用来检测实际值与期望值是否一致        assertEquals(8, result);    }    public static int add(int a, int b) {        return  a - b;    }}

上面的代码中实际值与期望值不一致所以报错,并且在输出框中输出了错误信息



当除数为0时,会报错

package com.fyt.junitdemo;import android.test.AndroidTestCase;import android.util.Log;public class junitTest extends AndroidTestCase {    public void test() {        chuyi(2, 0);    }    public static void chuyi(int i, int j) {        int result = i / j;    }}

错误提示如下


0 0