Android程序等待1,android – Espresso如何等待一段时间(1小时)?
在我的测试用例中,我必须记录1小时,在机器人solo.sleep(600000)完成了我的工作,但在espresso我感到困惑IdlingResource的概念.我必须开始录音并等待一段时间(取决于测试的类型)15分钟,60分钟等
机器人中的等效代码
solo.clickOnView(solo.getView("start_record"));
solo.sleep(duration * 60 * 1000);
solo.clickOnView(solo.getView("stop_record"));
我尝试在espresso中使用它
@RunWith(AndroidJUnit4.class)
@SmallTest
public class AaEspressoTest {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.absd.rec.RecorderActivity";
private static Class> launcherActivityClass;
private Solo solo;
private static CoreRecordingTest skyroTestRunner;
private static Class extends Activity> activityClass;
static {
try {
activityClass = (Class extends Activity>) Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@Rule
public final ActivityTestRule> activityRule
= new ActivityTestRule<>(activityClass);
private IntentServiceIdlingResource idlingResource;
@Before
public void registerIntentServiceIdlingResource() {
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
idlingResource = new IntentServiceIdlingResource(instrumentation.getTargetContext());
Espresso.registerIdlingResources(idlingResource);
}
@After
public void unregisterIntentServiceIdlingResource() {
Espresso.unregisterIdlingResources(idlingResource);
}
@Test
public void testHello() throws Exception {
onView(withId(AaEspressoTest.getId("recorderpage_record"))).perform(click());
registerIntentServiceIdlingResource();
onView(withId(AaEspressoTest.getId("recorderpage_stop"))).perform(click());
}
}
空闲资源
public class IntentServiceIdlingResource implements IdlingResource {
private final Context context;
private ResourceCallback resourceCallback;
public static boolean status = false;
public IntentServiceIdlingResource(Context context) {
this.context = context;
}
@Override
public String getName() {
return IntentServiceIdlingResource.class.getName();
}
@Override
public boolean isIdleNow() {
return getTimer();
}
@Override
public void registerIdleTransitionCallback(ResourceCallback resourceCallback) {
this.resourceCallback = resourceCallback;
}
private static boolean getTimer() {
new CountDownTimer(5000,1000) {
@Override
public void onTick(long millisUntilFinished) {
// Do Nothing
status = false;
}
@Override
public void onFinish() {
status = true;
}
};
return status;
}
}
例外:
android.support.test.espresso.IdlingResourceTimeoutException: Wait for [com.adbs.recorder.IntentServiceIdlingResource] to become idle timed out
Android程序等待1,android – Espresso如何等待一段时间(1小时)?相关推荐
- java写一个android程序_【Android开发笔记】3.编写第一个Android程序
前言 上一节我们通过一个Demo熟悉了Eclipse的基本使用.如何在模拟器和手机中运行以及如何打包成APK,但没具体编写代码,相信很多同学已经按耐不住了吧,这一节我们会动手编写代码来熟悉Androi ...
- 如何在android程序使用toast,Android在退出应用程序时以及正在显示toast时...
诀窍是跟踪显示的最后一个Toast,并取消那个. 我所做的是创建一个Toast包装器,它包含对显示的最后一个Toast的静态引用. 当我需要显示一个新的时,我首先取消静态引用,然后再显示新引用(并将其 ...
- android 程序退出广播,android 利用广播实现程序的强制退出
利用广播机制,实现程序的强制退出. 前面有篇博文,写到了一键退出,这里利用到了那里的ActivityCollector的集合和BaseActivity 功能:打开程序后,先登录,登录成功后,进入主页面 ...
- android程序root权限,android – 如何从源代码授予对特定应用程序的root访问权限而不是root权限?...
我正在从源代码编译Android ROM,我有一个应用程序,我希望它预先安装并让它以root权限运行. 如何在不支持整个ROM的情况下授予对此特定应用程序的root访问权限? 解决方法: 希望你不需要 ...
- android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试
一:打包成apk包 这个比较简单,如下 右键点击项目--> export --> android Project --> 选择密钥等信息 --> 填写密钥信息 --&g ...
- android 程序更换字体,Android修改自己程序字体的方法详解
Android提供三种字体:"Sans","serif"和"monospace". 1.在Android XML文件中设置字体可以采用and ...
- android 程序白屏,Android冷启动白屏问题
1. 冷启动与热启动 通常我们在使用某个应用程序时,都是点击桌面应用图标来启动该程序.你肯定或多或少的碰到过这种情况:应用启动的一刹那,手机会先白屏或者黑屏一段时间,然后再进入应用程序的主页,但是你退 ...
- android 程序崩溃处理,Android应用崩溃的应急处理
在我们开发Android应用程序的时候总是难免遇到程序崩溃的问题:(很抱歉,"××"已停止运行.) 每次看到这个问题心都是哇凉哇凉的 一般遇到这样问题,有两种可能: 1.自己的代码 ...
- 简单的Android程序多少钱,Android简单程序利息计算器
我在编程Android的第一课,并为我的第一次尝试,我试图开发一个利息计算器.该应用程序启动,但然后崩溃.代码如下:Android简单程序利息计算器 package com.example.vitor ...
最新文章
- 互联网直播云计算架构介绍
- 【调参实战】那些优化方法的性能究竟如何,各自的参数应该如何选择?
- xfce开始菜单增加一个新的图标
- python中xrange和range的异同
- MS SQL 模仿ORACLE的DESC
- Wordpress的theme存储位置
- 云服务器 存放 文件夹,云服务器 存放 文件夹
- express中间件系统的基本实现
- Pentium的指令系统(3)——算术运算指令
- python-socket模块基本用法收集
- glide源码中包含了那种设计模式_Glide源码解读(一)
- 移动位置应用的推动者——ArcGIS移动产品家族
- gitter 卸载_最佳Gitter渠道:学习编码
- JavaScript——DOM文档
- html空格符的代码用转义字符怎么表示,html空格符号标签 空格符号怎么打出来HTML?...
- 照片墙背景html图片,微信照片墙背景图片
- ROMS海洋模式笔记
- 石家庄地铁路线安排网站的设计
- leet70:爬楼梯
- 「csp模拟试题 201903-2」二十四点 C/C++ 100分
热门文章
- import caffe失败 No module named caffe
- Java B2B2C多用户商城 springcloud架构- 企业云架构common-service代码结构分析(六)...
- HDU-1569 方格取数(2) 最小割最大流
- 我是主考官:应聘者给我的圈套
- 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况...
- Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
- WCF系列(二) -- 使用配置文件构建和使用WCF服务
- Apache支持ASP.NET方法浅析
- 从0开始搭建ELK及采集日志的简单应用
- sublime xdebug调试php