如果我们要对一个Activity界面上的一个按钮的点击事件进行单元测试,则可使用ActivityInstrumentationTestCase2类来进行测试。 
首先我们定义一个测试类:

public class TestOneActivity extends
ActivityInstrumentationTestCase2<OneActivity> {
public TestOneActivity() {
super("com.hc.bai", OneActivity.class);
}
}

其中,OneActivity代表被测试的Activity,TestOneActivity()为该测试类的构造函数,super有两个参数,第一个是包名,我这为“com.hc.bai”。如果在你要测试的Activity的onCreate函数中,需要接受来自启动该Activity的页面传来的参数,可以在测试类中摸你传值,在这我们可以重写测试类的getActivity()函数,如下:

@Override
public OneActivity getActivity() {
OneActivity a;
Intent i = new Intent();
Bundle b = new Bundle();
b.putString("name", "sss");
b.putString("id", "sss");
// a = launchActivityWithIntent(targetPackage, OneActivity.class,
// i);
a = launchActivity(targetPackage, OneActivity.class, b);
setActivity(a);
System.out.println("getActivity--------------------------");
return a;
}

通过在getActivity中执行launchActivityWithIntent或launchActivity,我们就可以将参数传递给被测试的Activity。在测试中,我们要对该界面上的一个Button进行测试,则我们还需要在Setup中定义该Button

private Button bt;
OneActivity one;
protected void setUp() throws Exception {
one = getActivity();
bt = (Button) one.findViewById(R.id.bt_test);
System.out.println("setup********************");
}

之后我们就可以完成我们的测试函数:

public void testOne() {
one.runOnUiThread(new Runnable() {
public void run() {
//Looper.getMainLooper();
bt.performClick();
}
}); getInstrumentation().waitForIdleSync();
。。。
}

可以看到,我们需要在runOnUiThread中调用bt.performClick()事件,如果直接调用该事件,则程序会出现异常,getInstrumentation().waitForIdleSync()这一句是同步等待应用程序被闲置,之后,我们责可以写类似于assertEquals、assertTrue等函数。

本文转自:http://lxfgrace.iteye.com/blog/1609759

Android 使用Instrumentation进行界面的单元测试的更多相关文章

  1. Android之如何使用JUnit进行单元测试

    转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...

  2. Android中如何使用JUnit进行单元测试 eclipse

    Android中如何使用JUnit进行单元测试 在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期. Andr ...

  3. Android 在安装完成界面,点击打开应用程序。在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开

    Android 在安装完成界面,点击打开应用程序.在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开. etong_123的专栏 - 博客频道 - CSDN.NET htt ...

  4. android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】

    zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照 ...

  5. 精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具

    在制作界面原型的时候,如果有现成的界面基础元素可以使用的话,设计师就可以非常快速的完成原型的制作,能够节省大量的时间和精力.在这篇文章, 我向大家分享45套非常有用的 UI 和 Wireframe 套 ...

  6. Android开发学习——SQLite数据库与单元测试

    SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHelper  public class Myopenhelper extends SQLiteOpenHelp ...

  7. android 学习随笔三(测试与单元测试框架)

    测试 1.按岗位: 黑盒测试:测试业务逻辑 白盒测试:测试逻辑方法 2.按测试粒度 方法测试 function 单元测试 unit 集成测试 integration 系统测试 system 3.按暴力 ...

  8. Android 开发笔记——对应用进行单元测试

    在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,是正规Android开发的必用技术, 在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 第一 ...

  9. Android 手机卫士--导航界面3、4和功能列表界面跳转逻辑处理

    刚刚花了一点时间,将导航界面3.4的布局和相应的跳转逻辑写了一下: Setup3Activity代码如下: /** * Created by wuyudong on 2016/10/10. */ pu ...

随机推荐

  1. Unity3D研究院之IOS全自动打包生成ipa

    接着上一篇文章, 自动生成framework,这篇文章我把shell自动化打包ipa整理了一下,希望大家喜欢,嘿嘿.. 建议大家先看一下上一篇文章.http://www.xuanyusong.com/ ...

  2. 集合、拆箱、装箱、自定义集合的foreach

    集合部分 参考:http://msdn.microsoft.com/zh-cn/library/0ytkdh4s(v=vs.110).aspx 集合类型是诸如哈希表.队列.堆栈.包.字典和列表等数据集 ...

  3. Kibana

    https://github.com/moonstack/moon-kibana.git

  4. ios学习笔记block回调的应用(一个简单的例子)

    一.什么是Blocks      Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block. 二. ...

  5. POJ 2400 Supervisor, Supervisee(KM)

    題目鏈接 題意 :N个部门和N个员工,每个部门要雇佣一个工人,部门对每个工人打分,从1~N,1表示很想要,N表示特别不想要,每个工人对部门打分,从1~N.1表示很想去这个部门,N表示特别不想去这个部门 ...

  6. 搭建网站 discuzx ecshop php

    1.http://www.comsenz.com/downloads/install/discuzx下载

  7. s3cmd的安装与使用

     s3cmd 是一款 Amazon S3 命令行工具.它不仅能上传.下载.同步,还能设置权限,下面是完整的安装使用指南. 主要是还是用来储存日志文件或者其他什么资料. https://wangyan. ...

  8. 2410中断中SRCPND和INTPND清零的疑问

    2410中断中SRCPND和INTPND清零的疑问SRCPND是中断源引脚寄存器,某个位被置1表示相应的中断被触发,但我们知道在同一时刻内系统可以触发若干个中断,只要中断被触发了,SRCPND的相应位 ...

  9. 如何在React中使用CSS3动画

    一.需求 1.在页面添加item时要有渐变效果 2.单击item可删除,带渐变效果 二.代码 1.通过Reacat插件ReactCSSTransitionGroup实现 <!DOCTYPE ht ...

  10. tornado nginx supervisor

    安装:sudo apt-get install python-tornado sudo apt-get install nginx sudo apt-get install supervisor 1. ...