如何进行Android单元测试

  1. Menifest.xml中加入:

    <application>中加入:

    <uses-library android:name="android.test.runner" />

    <application>外面加入:

    <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />

    <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="name.feisky.android.test"

    android:label="Test for my app"/>

  1. 编写单元测试代码:必须继承自AndroidTestCase类

    package name.feisky.android.test;

    import android.test.AndroidTestCase;

    import junit.framework.Assert;

    public class MyTest extends AndroidTestCase {

    private static final String Tag="MyTest";

    public void testSave() throws Throwable

    {

    int i=4+8;

    Assert.assertEquals(5,i);

    }

    public void testSomethingElse() throws Throwable {

    Assert.assertTrue(1 + 1 == 12);

    }

    }

  2. 执行测试

    IntelliJ中:

    eclipse中:右键 run as Android JUnit Test

    命令行工具:

    adb shell am instrument -w name.feisky.android.test/android.test.InstrumentationTestRunner

也可以新建一个测试项目进行测试

  1. New > Project > Android > Android Test Project.

  1. 添加测试用例类
  2.  

    添加新类,基类设置为android.test.ActivityInstrumentationTestCase2<HelloAndroid>

  3. 添加构造函数

    添加setUp()方法,这个方法在所有的测试之前进行变量和测试环境的初始化。

    @Override

    protected void setUp() throws Exception {

    super.setUp();

    mActivity = this.getActivity();

    mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview);

    resourceString = mActivity.getString(com.example.helloandroid.R.string.hello);

    }

  4. 添加testPreconditions()方法,检查初始化环境,只执行一次

    public void testPreconditions() {

    assertNotNull(mView);

    }

  5. 添加单元测试

    public void testText() {

    assertEquals(resourceString,(String)mView.getText());

    }

  6. 测试 Run As... > Android JUnit Test

Android程序怎么做单元测试的更多相关文章

  1. Android程序架构基本内容概述

    在Android操作系统中开发的应用程序都有一个结构缜密的架构.我们今天就来对这一Android程序架构做一个详细的分析.帮助大家了解程序开发的特点,以方便将来在应用程序开中明确自己的程序架构. An ...

  2. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  3. 在Android Studio中进行单元测试和UI测试

    本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio.能力有限,如有翻译 ...

  4. Android 程序优化总结

    第一部分 编程规范 1.1 基本要求: 程序结构清晰,简单易懂,单个函数的程序行数不得超过100行. 打算干什么,要简单,直接. 尽量使用标准库函数和公共函数 不要随意定义全局变量,尽量使用局部变量. ...

  5. Android学习笔记-junit单元测试

    我们都知道测试对于程序员来说是必不可少的,所以,做Android程序,也要学会使用junit,这里比着java的junit测试,要稍微复杂一点,需要一些配置,下面饿哦就介绍一下怎样使用junit的测试 ...

  6. [Android]Android MVP&依赖注入&单元测试

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5422443.html Android MVP&依赖注入 ...

  7. Android程序crash处理

    Android程序crash处理 时间 2014-11-24 13:45:37  CSDN博客 原文  http://blog.csdn.net/allen315410/article/details ...

  8. 【Bugly干货分享】手把手教你逆向分析 Android 程序

    很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下. 第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的 ...

  9. Delphi Android程序启动过程

    Delphi的Android程序是原生的程序,也就是NativeActivity.那么就需要先看一下NativeActivity的原理, 在AndroidManifest.xml文件里面指定入口act ...

随机推荐

  1. spring源码分析 contextConfigLocation属性的位置

    <context-param> <param-name>contextConfigLocation</param-name> <param-value> ...

  2. Linux命令之gdisk

    gdisk -l [设备] gdisk又叫GPT fdisk,算是fdisk的延伸吧,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘. 扩展1:分区类型GPT和MBR.GPT最大支持18EB( ...

  3. 【UOJ #206】【APIO 2016】Gap

    http://uoj.ac/problem/206 对于T=1,直接从两端往中间跳可以遍历所有的点. 对于T=2,先求出最小值a和最大值b,由鸽巢原理,答案一定不小于\(\frac{b-a}{N-1} ...

  4. Codeforces 372 B. Counting Rectangles is Fun

    $ >Codeforces \space 372 B.  Counting Rectangles is Fun<$ 题目大意 : 给出一个 \(n \times m\) 的 \(01\) ...

  5. USACO 2017 FEB Platinum nocross DP

    题目大意 上下有两个长度为n.位置对应的序列A.B,其中数的范围均为1~n.若abs(A[i]-B[j]) <= 4,则A[i]与B[j]间可以连一条边.现要求在边与边不相交的情况下的最大的连边 ...

  6. Unity ScriptObject创建Asset文件

    创建ScriptObject可以创建带序列化的资源,只保存数据不用绑定在游戏对象上.创建出来的本子资源可以通过资源加载到游戏里使用.这里介绍一下使用Resources加载. 创建好的asset文件也可 ...

  7. 在阅读sqlmap源码时学到的知识--检查运行环境

    最近在读sqlmap的源码,懵懵懂懂中页大约学到了一些知识(说给自己听的话:由此可见,所谓的能够解决所有遇到问题的python水平,只能说明你遇见的都是简单的需求....),老规矩,在这里写一下,一则 ...

  8. Dart格式化输出

    类似于保留几位小数,直接 n.toStringAsFixed() 例如: 1.toStringAsFixed(3); // 1.000 (4321.12345678).toStringAsFixed( ...

  9. Object-C编程基础总结:

    1,nil,NULL,NSNull:nil用来给对象附值,object—c里允许对象为空,空对象也可以接受消息.但是不允许指针为空,NULL是给任何指针附值的.所以NULL只在C或C++里才用.NSN ...

  10. HDU 4579 Random Walk (解方程组)

    Random Walk Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65535/65536 K (Java/Others)Total ...