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的模拟的,本文通过 ...
随机推荐
- 怎么在js里写html
<html> <head> <meta charset="utf-8"/> <title>示例前端模板写在代码里</title ...
- Python stdout
(1)stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n') print 将你需要的内容打 ...
- Javascript中闭包的个人理解
Javascript的一个特殊点就在于它的闭包和回调特性,这两个特性让初学Javascript的我是云里雾里,至今仍在苦苦摸索与理解.在一番苦思之后,整理了一下资料,将自己的理解思路记录下来,以 ...
- jps参数
jps是jdk1.5提供的用来显示当前java进程的指令,能显示进程id及进程名称(多指jar包名称.class名称) -q 只显示进程ID -m 显示传递给main方法的参数 -l 显示应用程序完整 ...
- Spiral Matrix螺旋遍历矩阵
假定有: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 这样一个数组矩阵,现要求对其进行顺时针方向螺旋形从外至内地遍历,即输出: [1,2,3,6,9,8,7,4 ...
- hd acm1005
问题: 已知递推公式:f[i] = ( a * f[i-1] + b * f[i-2] ) % 7,f[1]=1,f[2]=1. 需要你输入三个数a,b,n.其中a,b用来补充上述公式,用补充后的公式 ...
- 添加linux开机启动任务
对于系统里面设置的开机启动程序 先来看一个例子nginx启动脚本 #!/bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $ ...
- Hadoop- HDFS的API操作
1.引入依赖 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...
- POJ 1258 Agri-Net(Prim算法)
题意:n个农场,求把所有农场连接起来所需要最短的距离. 思路:prim算法 课本代码: //prim算法 #include<iostream> #include<stdio.h> ...
- Idea_学习_03_IDEA中使自定义类型的文件进行代码高亮识别
如果你只是想用xml的编辑模式来编辑*.screen文件的话,可以在 Settings->Editor->File Types 中,在Recognized File Types选中XML, ...