Android-junit 单元测试:
一个好的软件不是写出来的是测出来的,接下来手工引入 junit 框架
为你的application 做单元测试,使它更强壮吧!
首先创建工程,我们需要一个service 类进行测试 待测试的 service方法
Java 代码:
package com.liwei.junittest.services;
/**
* 业务方法,junit 测试用
*
* @author liwei
*
*/
public class CalcService {
public int add(int x, int y) {
return x + y;
}
public static void main(String[] args) {
System.out.println("1111");
}
/**
* Invalid layout of java.lang.String at value # # A fatal error has been
* detected by the Java Runtime Environment: # # Internal Error
* (javaClasses.cpp:129), pid=19356, tid=19740 # fatal error: Invalid layout
* of preloaded class # # JRE version: 7.0_25-b17 # Java VM: Java
* HotSpot(TM) 64-Bit Server VM (23.25-b01 mixed mode windows-amd64
* compressed oops) # Failed to write core dump. Minidumps are not enabled
* by default on client versions of Windows # # An error report file with
* more information is saved as: #
* D:\android_code\junittest\hs_err_pid19356.log # # If you would like to
* submit a bug report, please visit: #
* 右击直接运行,发生错误
* http://bugreport.sun.com/bugreport/crash.jsp # 安装到虚拟机时错误, log
* 保存到D:\android_code\junittest\hs_err_pid19356.log 如果你想上传 bug
* 请上传到http://bugreport.sun.com/bugreport/crash.jsp #
* 原因:右键运行,不能直接运行在java虚拟机中
* android-运行 首先打包apk 上传到手机, 运行在 手机dvk 虚拟机中
*/
}
创建一个 测试方法 extends AndroidTestCase
代码:
package com.liwei.junittest.test;
import com.liwei.junittest.services.CalcService;
import android.test.AndroidTestCase;
public class TestCalcService extends AndroidTestCase {
/**
* add 方法的测试代码 把异常抛给测试框架
*
* @throws Exception
*/
public void testAdd() throws Exception {
CalcService service = new CalcService();
int result = service.add(3, 5);
assertEquals(8, result);// 断言是否为正确结果
}
}
引入框架需要 引入 函数库 和指令集
指令集
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.liwei.junittest" > </instrumentation>
函数库在application 节点下 引入
<uses-library android:name="android.test.runner"/>
接下来进行测试,右击 Run As Android JUnit Test 以 Android JUnit 运行
junit 运行流程
首先 检查 android虚拟机是否启动
Adb 是否连接
执行 指令集
然后把junit 的apk装到 虚拟机上 成功后
执行指令集, 发送测试信息
期待值失败