02_android下单元测试
Java的单元测试JUnit。

Java程序入口是main方法。一般不在安卓程序入口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
做测试。

package com.itheima.test;
import android.test.AndroidTestCase;
public class MyMathTest extends AndroidTestCase {
public void testAdd(){
MyMath math = new MyMath();
int result = math.add(3, 4);
assertEquals(7, result);//断言,前面是期望值,后面是实际值
}
}
这是一个安卓的应用,最终想测试这个方法,必须得把代码跑到设备上才行。代码得跑在ARM/Dalvik虚拟机才行。所以首先要把代码部署到设备上。

[2017-06-13 06:38:14 - SDK Manager] Created AVD 'android95device' based on Android 4.2, Intel Atom (x86) processor,
[2017-06-13 06:38:14 - SDK Manager] with the following hardware config:
[2017-06-13 06:38:14 - SDK Manager] hw.sdCard=yes
[2017-06-13 06:38:14 - SDK Manager] hw.device.manufacturer=Generic
[2017-06-13 06:38:14 - SDK Manager] hw.mainKeys=yes
[2017-06-13 06:38:14 - SDK Manager] hw.lcd.density=160
[2017-06-13 06:38:14 - SDK Manager] hw.accelerometer=yes
[2017-06-13 06:38:14 - SDK Manager] hw.dPad=no
[2017-06-13 06:38:14 - SDK Manager] hw.device.hash=-1587417588
[2017-06-13 06:38:14 - SDK Manager] hw.trackBall=yes
[2017-06-13 06:38:14 - SDK Manager] hw.device.name=3.2in QVGA (ADP2)
[2017-06-13 06:38:14 - SDK Manager] hw.camera.back=none
[2017-06-13 06:38:14 - SDK Manager] hw.sensors.proximity=yes
[2017-06-13 06:38:14 - SDK Manager] hw.battery=yes
[2017-06-13 06:38:14 - SDK Manager] disk.dataPartition.size=200M
[2017-06-13 06:38:14 - SDK Manager] hw.audioInput=yes
[2017-06-13 06:38:14 - SDK Manager] hw.sensors.orientation=yes
[2017-06-13 06:38:14 - SDK Manager] hw.gps=yes
[2017-06-13 06:38:14 - SDK Manager] skin.dynamic=yes
[2017-06-13 06:38:14 - SDK Manager] hw.keyboard=yes
[2017-06-13 06:38:14 - SDK Manager] vm.heapSize=16
[2017-06-13 06:38:14 - SDK Manager] hw.ramSize=512
[2017-06-13 07:19:33 - Day03_01_android单元测试] ------------------------------
[2017-06-13 07:19:33 - Day03_01_android单元测试] Android Launch!
[2017-06-13 07:19:33 - Day03_01_android单元测试] adb is running normally.
[2017-06-13 07:19:33 - Day03_01_android单元测试] Day03_01_android单元测试 does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml
必须在清单文件里面指定一个仪器设备instrumentation a android.test.InstrumentationTestRunner

<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.itheima.test"></instrumentation>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.itheima.test"></instrumentation> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner"/>
指定了测试要用到的仪器<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.itheima.test"></instrumentation>,还有测试所要依赖的库<uses-library android:name="android.test.runner"/>。
这个代码一定要在安卓的虚拟机下执行。PC机上是没有安卓设备的。所以一定要把它部署到一个安卓设备上,才能够测试安卓项目里面的代码。


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.test"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.itheima.test"></instrumentation> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner"/>
<activity
android:name="com.itheima.test.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>
package com.itheima.test;
public class MyMath {
public int add(int i,int j){
return i+j;
}
}
package com.itheima.test;
import android.test.AndroidTestCase;
public class MyMathTest extends AndroidTestCase {
public void testAdd(){
MyMath math = new MyMath();
int result = math.add(3, 4);
assertEquals(7, result);//断言,前面是期望值,后面是实际值
}
}
02_android下单元测试的更多相关文章
- SSH框架下单元测试的实现
SSH框架下单元测试的实现 实现的功能 实现了部门的增删改查 对Action进行了单元测试 对Service 进行了单元测试,通过mock的方式实现. 实现的步骤 一.对Action层的单元测试实现 ...
- VS 2010下单元测试
1.创建单元测试项目 2.创建完成后,新建项目会自动添加“Microsoft.VisualStudio.QualityTools.UnitTestFramework”的引用,该引用用于单元 ...
- 如何快速上手.net下单元测试工具NUnit?
NUnit基本使用 准备知识: 读此博文需要了解单元测试基本概念及NUnit的的安装. 传送门:单元测试之道(使用NUnit) 1.常见的错误 当学习一个新东西时,先学习错误,是最快的方式. 1.1 ...
- Visual Studio中UnitTesting单元测试模板代码生成
在软件研发过程中,单元测试的重要性直接影响软件质量.经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低.在软件开发的后期阶段,Bug的发 ...
- 快速学习C语言二: 编译自动化, 静态分析, 单元测试,coredump调试,性能剖析
上次的Hello world算是入门了,现在学习一些相关工具的使用 编译自动化 写好程序,首先要编译,就用gcc就好了,基本用法如下 gcc helloworld.c -o helloworld.o ...
- 使用JUnit4进行java单元测试
第一步:创建一个java工程,在工程中创建一个被单元测试的Student数据类,代码如下: package com.junittest.yu; public class Student { priv ...
- android 学习随笔三(测试与单元测试框架)
测试 1.按岗位: 黑盒测试:测试业务逻辑 白盒测试:测试逻辑方法 2.按测试粒度 方法测试 function 单元测试 unit 集成测试 integration 系统测试 system 3.按暴力 ...
- java单元测试(Junit)
Eclipse最基本的模块测试 1:首先创建一个java工程,在工程中创建一个被单元测试的Student数据类,如下: package UnitTest; public class Student { ...
- [转]模拟HttpContext 实现ASP.NET MVC 的单元测试
众所周知 ASP.NET MVC 的一个显著优势即可以很方便的实现单元测试,但在我们测试过程中经常要用到HttpContext,而默认情况下单元测试框架是不提供HttpContext的模拟的,本文通过 ...
随机推荐
- LeetCode:三个数的最大乘积【628】
LeetCode:三个数的最大乘积[628] 题目描述 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1 ...
- 经典c语言题
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 2. 写一个“标 ...
- Dockerfile指令及docker的常用命令
DockerfileFROM: FROM <image> FROM <image>:<tag> MAINTAINER: MAINTAINER <name> ...
- 【leetcode刷题笔记】Insertion Sort List
Sort a linked list using insertion sort. 题解:实现链表的插入排序. 要注意的地方就是,处理链表插入的时候尽量往当前游标的后面插入,而不要往前面插入,后者非常麻 ...
- OpenStack Neutron 之 Load Balance
OpenStack Neutron 之 Load Balance 负载均衡(Load Balance)是 OpenStack Neutron 支持的功能之一.负载均衡能够将网络请求分发到多个实际处理请 ...
- delphi通过Idhttp和php交互
最近需要做delphi和php交互的方法: 就把这2个方法写了下 一,Get方法 const Url = 'http://www.cnblogs.com'; procedure TForm1.Butt ...
- SPFA 算法(剪辑)(学习!)
SPFA算法 单源最短路径的算法最常用的是Dijkstra,些算法从时间复杂度来说为O(n^2),但是面对含有负权植的图来说就无能为力了,此时 Dellman-ford算法就有用了,这咱算法是采用的是 ...
- nginx Unit 服务器
转自: https://github.com/nginx/unit/pull/18/ 感谢: https://www.v2ex.com/t/389528 English 简体中文 繁體中文 NGINX ...
- 如何拯救一台glibc被干掉的Linux服务器
原文: 如何拯救一台glibc被干掉的Linux服务器? 首先如果 libc.so.6 没有被删除, 直接使用LD_PRELOAD就可以恢复 LD_PRELOAD=/lib64/libc-2.12.s ...
- Android 动态权限申请
package com.dragon.android.permissionrequest; import android.Manifest; import android.content.Dialog ...