在android中使用单元测试框架

单元测试简介:单元测试简单来说就是测试某个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()方法

在android中使用单元测试框架_第1张图片


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

在android中使用单元测试框架_第2张图片


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


查看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;
    }
}

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

在android中使用单元测试框架_第3张图片


当除数为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;
    }
}

错误提示如下


你可能感兴趣的:(在android中使用单元测试框架)