单元测试简介:单元测试简单来说就是测试某个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>
选择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; } }