单元测试简介:单元测试简单来说就是测试某个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;
}
}
错误提示如下