当前位置: 首页 > 编程日记 > 正文

Espresso小试

Espresso开源了,那就试着用一下,

1. 下载Espresso

Espresso没有提供单独的jar包下载,建议clone整个项目或者下载zip包

git clone https://code.google.com/p/android-test-kit/

或从这里下载:https://code.google.com/p/android-test-kit/source/browse/

我们一般用espresso-1.1-bundled.jar这个包

2. 使用ADT创建一个Android应用项目EspressoDemo, lib里加入espresso-1.1-bundled.jar

这个android项目我没干什么,就是加了一个按钮

3. 编写Test,Espresso其实是一个API,通过调用它来完成UI的操作

 1 package com.example.espressotest;
 2 
 3 import com.example.espressodemo.MainActivity;
 4 import com.example.espressodemo.R;
 5 import com.google.android.apps.common.testing.ui.espresso.action.ViewActions;
 6 import com.google.android.apps.common.testing.ui.espresso.assertion.ViewAssertions;
 7 import com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers;
 8 import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView;
 9 
10 import android.test.ActivityInstrumentationTestCase2;
11 
12 @SuppressWarnings("rawtypes")
13 public class EspressoTest extends ActivityInstrumentationTestCase2 {
14     @SuppressWarnings("unchecked")
15     public EspressoTest() {
16         super(MainActivity.class);
17     }
18 
19     @Override
20     protected void setUp() throws Exception {
21         super.setUp();
22         getActivity();
23     }
24 
25     public void testClickButton() throws InterruptedException {
26         onView(ViewMatchers.withId(R.id.button1)).perform(ViewActions.click()).check(ViewAssertions.matches(ViewMatchers.isDisplayed()));
27     }
28 
29     @Override
30     protected void tearDown() throws Exception {
31         super.tearDown();
32     }
33 }

EspressoTest没干什么,就是判断添加的按钮是否存在

4. 配置AndroidManifest.xml文件,需要添加2段内容, application里添加uses-library,再添加一个instrumentation

1 <application
2     <uses-library android:name="android.test.runner" />
3 </application>
1 <instrumentation
2         android:name="com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
3         android:targetPackage="$YOUR_TARGET_APP_PACKAGE" />

5. 配置Runner,如下图,选择GoogleInstrumentationTestRunner

6. 运行测试,Espresso会自动启动AVD,安装被测APK,在AVD上执行测试

说到AVD,还是慢,建议及早启动

7. 更多信息

https://code.google.com/p/android-test-kit/

API查看https://android-test-kit.googlecode.com/git/docs/javadocs/apidocs/index.html

相关文章:

XML与DataSet的相互转换类

送给大家一个XML与DataSet的相互转换的类:XmlDatasetConvert 该类提供了四种方法&#xff1a;1、将xml对象内容字符串转换为DataSet2、将xml文件转换为DataSet3、将DataSet转换为xml对象字符串4、将DataSet转换为xml文件 XmlDatasetConvert.csusing System;using System.Colle…

想学Python?那这套教程再适合不过了!

如果你想问最近这些年什么编程语言最值得学习&#xff0c;我相信很多人都会告诉你是Python&#xff01;所以不仅是开发小白&#xff0c;甚至很多开发老手&#xff0c;也都开始学习Python&#xff0c;作为辅助第二语言来提高自己的职场竞争力。不过结合我最近这些年Python的学习…

修改360浏览器 标题栏 显示的文字

作者&#xff1a;韩梦飞沙 Author&#xff1a;han_meng_fei_sha 邮箱&#xff1a;313134555qq.com E-mail: 313134555 qq.com 修改360浏览器 标题栏 显示的文字 dll修改 DLL(Dynamic Link Library)文件是一种常见的应用程序拓展&#xff0c;也叫动态链接库文件。若遇到一些已经…

联邦学习的隐忧:来自梯度的深度泄露

作者 | Ligeng Zhu and Song Han编译 | 对外经济贸易大学金融科技实验室头图 | 下载于视觉中国【编者按】数据交易流通是数据要素市场建立的关键环节。为了在推动数据流动的同时保护数据安全、个人信息和隐私&#xff0c;隐私计算技术因运而生。目前&#xff0c;该技术分为三个…

.net 中 using的几种用法

1. using指令。using 命名空间名字&#xff0c;这样可以在程序中直接用命令空间中的类型&#xff0c;而不必指定类型的详细命名空间&#xff0c;类似于Java的import&#xff0c;这个功能也是最常用的&#xff0c;几乎每个cs的程序都会用到。例如&#xff1a;using System; 一般…

少走弯路的10条忠告

如何在涉世之初少走弯路&#xff0c;有一个好的开端&#xff0c;开始一番成功的事业&#xff1f;以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧&#xff0c;比起所学的课堂课程来&#xff0c;它毫不逊色&#xff01; 1. 买个闹钟&#xff0c;以…

linux实战考试题:批量创建用户和密码(不能使用循环)

批量创建10个用户&#xff0c;并且设置随机8位密码&#xff0c;要求不能用shell的循环&#xff08;例如&#xff1a;for,while等&#xff09;&#xff0c;只能用linux命令及管道实现。方法1&#xff1a;[rootoldboy /]# echo stu{01..10}|tr " " "\n"|sed …

路径,文件,目录,I/O常见操作汇总

摘要: 文件操作是程序中非常基础和重要的内容&#xff0c;而路径、文件、目录以及I/O都是在进行文件操作时的常见主题&#xff0c;这里想把这些常见的问题作个总结&#xff0c;对于每个问题&#xff0c;尽量提供一些解决方案&#xff0c;即使没有你想要的答案&#xff0c;也…

Winform开发的界面处理优化

在Winform开发中&#xff0c;客户体验是个很好的参考性指标&#xff0c;如果一个功能使用的时候感觉很流畅&#xff0c;说明我们的程序执行效率还不错&#xff0c;但是随着数据的真多&#xff0c;原先可能流程的地方可能会变得比较卡&#xff0c;这时候就需要追本索源&#xff…

人工智能语音技术支持“多情感程度”调节,细腻演绎“人声”

近期&#xff0c;微软发布最新语音技术&#xff0c;支持“情感程度”轻松调节&#xff0c;令智能语音的情感表现力更加细腻可控。 人类的情感很大程度上体现于语音语调的微妙变化&#xff0c;比如一句“再见”&#xff0c;有时是平静而含蓄的&#xff0c;有时是开心而轻松的&a…

HDU 1431 素数回文

有人问我这个问题。个人感觉暴搜会TLE O(n*sqrt(n))。n100000000&#xff1b;&#xff08;推断素数用2~sqrt(n)1 去除&#xff09; 还是枚举好了。枚举 1~10000&#xff0c;把他每一位存下来&#xff0c;回文数已知 left 。求 right &#xff0c;然后组合起来。比如 1 &#xf…

递归的妙用—遍历子控件

我们在ASP.NET编程中, 经常需要遍历一个Web控件的子控件 &#xff0c;找到所需的控件并获取控件中相应的值。以前我都是采用循环的方式遍历子控件&#xff0c;但当子控件是复杂的树形结构&#xff0c;比如&#xff1a;子控件也有子控件&#xff0c;子控件的子控件也有子控件。这…

【原创】关于代码质量的打油诗

要想代码写得好&#xff0c;以下规则供参考&#xff1a;代码格式规范多&#xff0c;静态检查常做到。代码注释要工整&#xff0c;垃圾注释不可要。重要分支详注释&#xff0c;复杂逻辑拆分细。数据类型多注意&#xff0c;经常判空习惯好。常量类型须定义&#xff0c;魔幻数字要…

Java 开发技巧详细知识体系总结

本篇文章是我们整理的一份架构师的成长路线&#xff0c;包括了并发编程、设计模式、常用框架、中间件、微服务与分布式、常用工具、JVM、MySQL、数据结构与算法&#xff0c;还有架构师精选视频、架构师成长路线高清大图。又是新的一年&#xff0c;每一年都会有人在成为架构师的…

23-hadoop-hive的DDL和DML操作

跟mysql类似, hive也有 DDL, 和 DML操作 数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManualDDL : primitive_type| array_type| map_type| struct_type| union_type -- (Note: Available in Hive 0.7.0 and later) primitive_type为基本类型, 包括:…

经典正则表达式

正则表达式用于字符串处理&#xff0c;表单验证等场合&#xff0c;实用高效&#xff0c;但用到时总是不太把握&#xff0c;以致往往要上网查一番。我将一些常用的表达式收藏在这里&#xff0c;作备忘之用。本贴随时会更新。 匹配中文字符的正则表达式&#xff1a; [/u4e00-/u9…

腾讯云TDSQL数据库核心技术理论取得进展 ,同时发布数据异常检测工具

近日&#xff0c;腾讯云和中国人民大学在数据库基础研究上有了进展&#xff0c;聚焦在“数据异常”领域&#xff0c;这是数据库可串行化理论体系中的重要概念。 数据异常是打开并发访问控制技术大门的金钥匙。在数据库行业中&#xff0c;以往只发现了10多种数据异常现象&#…

Android应用工程文件组成

src目录&#xff1a;java代码源文件。gen目录&#xff1a;R.java&#xff1a;静态内部类&#xff0c;系统自动生成&#xff0c;无需程序员维护。assets目录&#xff1a;资源目录&#xff0c;html&#xff0c;多媒体文件。bin目录&#xff1a;应用程序所生成的apk。res目录&…

matlab2014a + win764bit + vs2013混合编程(.m转成dll供C++调用)

在matlab中可以通过mbuild工具将.m文件编译成dll文件供外部的C程序调用&#xff0c;这样就可以实现matlab和C混合编程的目的。 1. 使用matlab生成dll文件 1.1 首先需要带有mcc编译器的matlab软件&#xff0c;这个可以通过在matlab命令行中输入&#xff1a;!mcc命令来查看 1.2…

当前日期得到本周的开始和结束日期

/// <summary> /// 本周起止时间 /// </summary> /// <param name"dt"></param> /// <returns></returns> private string weekrange(System.DateTime dt) { int weeknow Convert.ToInt32(dt.DayOfWeek); int day…

分享一个mysql 复杂查询的例子

发布&#xff1a;脚本学堂/MySQL 编辑&#xff1a;thebaby 2013-08-23 09:37:37 【大 中 小】 有关mysql复杂查询的一个例子&#xff0c;正在学习mysql的朋友&#xff0c;可以作为一个参考。在mysql中&#xff0c;LOCATE(dmin,email)1 表示dmi字符在email字符中出现的索引位…

百度携手同济大学,瞄准AI、智慧交通等核心科技领域攻关

4月14日&#xff0c;百度与同济大学在上海举行了战略合作框架协议签约仪式。百度与同济大学将围绕人工智能、智慧交通等方面&#xff0c;共同开展科研攻关&#xff0c;创造AI技术及产业交流平台、搭建AI应用人才培养机制&#xff0c;力争取得基础理论和关键核心技术的突破。 签…

怎样做才是最优雅方式切换 web 项目数据源 ?

随着业务变迁/需求变更&#xff0c;JavaEE 应用中会被迫连接多个数据源进行业务处理。 怎样在不影响原有项目结构的情况下&#xff0c;已最优雅/最简洁的方式动态切换数据源呢&#xff1f; 本文已一次添加数据源后动态切换实践为例&#xff0c;描述整个思考和实践过程&#xff…

C#开发编码规范

C#开发编码规范 注记&#xff1a;Pascal 大小写形式——所有单词第一个字母大写&#xff0c;其他字母小写。Camel 大小写形式——除了第一个单词&#xff0c;所有单词第一个字母大写&#xff0c;其他字母小写。类名使用Pascal大小写形式 public class HelloWorld{ …}方法使用…

【原创】如何分析一个网站使用的服务器类型

如何知道一个网站使用的是什么类型的服务器呢&#xff1f;如其前端使用的是apache呢还是iis呢还是nginx呢还是其他呢&#xff1f;中间件使用的是什么呢&#xff1f;有以下几种方法&#xff1a; 首先说原理&#xff1a;http协议的头部提供了丰富的信息告诉我们一些信息&#xff…

想学Python?那这套教程再适合你不过了!!

如果你想问最近这些年什么编程语言最值得学习&#xff0c;我相信很多人都会告诉你是Python&#xff01;所以不仅是开发小白&#xff0c;甚至很多开发老手&#xff0c;也都开始学习Python&#xff0c;作为辅助第二语言来提高自己的职场竞争力。不过结合我最近这些年Python的学习…

Java compiler level does not match the version of the installed Java project facet.

2019独角兽企业重金招聘Python工程师标准>>> 解决方式&#xff1a;右击项目点击>>选择对应的版本就好、&#xff01; 转载于:https://my.oschina.net/liusonghuang/blog/1512115

【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...

目录&#xff1a; 【C#小知识】C#中一些易混淆概念总结 【C#小知识】C#中一些易混淆概念总结&#xff08;二&#xff09; ---------------------------------------分割线---------------------------------------------- 一&#xff0c;C#中结构 在C#中可以使用struct关键字来…

C#精髓【月儿原创】第一讲 使用垃圾回收器

说明&#xff1a;准备出一个系列&#xff0c;所谓精髓讲C#语言要点。这个系列没有先后顺序&#xff0c;不过尽量做到精。可能会不断增删整理&#xff0c;本系列最原始出处是csdn博客,谢谢关注。 C#精髓 第一讲 使用垃圾回收器 作者&#xff1a;清清月儿 主页&#xff1a;h…

5GtoB即将迎来规模商用,如何共创行业新价值?

4月14日&#xff0c;在华为公司第18届全球分析师大会期间&#xff0c;华为携手运营商代表、产业界代表举办了“5G激发行业新价值”论坛&#xff0c;与行业分析师、金融分析师共同探讨对5GtoB产业未来的展望、创新解决方案以及最佳业务实践。 5G发展进入快车道&#xff0c;融合…