是否有使用 Espresso 等待特定 Activity 完成或开始的规范解决方案?
我有一个显示几秒钟的 SplashActivity,然后是 MainActivity。我希望 Espresso 与 MainActivity 交互,而不是与 SplashActivity 交互,但我似乎找不到任何关于等待这种情况的信息。
我能找到的最接近的东西是提到空闲资源,但我不清楚我将如何在这里使用它来等待 Activity 。
最佳答案
我猜你的 splash activity 正在执行一些初始化。
如果是这种情况,我的建议是定义某种监听器模式,以便能够在初始化完成时获得回调。然后,您可以使用 IdlingResource 让 Espresso 等待初始化。
注意:以下不是完整的代码,但旨在为您提供如何操作的提示:
public class SplashIdlingResource implements IdlingResource, YourApplicationInitListener {
// volatile because can be set by a different
// thread than the test runner: the one calling back
private volatile boolean mIsInitialized;
private ResourceCallback mCallback;
public SplashIdlingResource() {
YourApplication application = // retrieve your Application object
mIsInitialized = application.isInitialized();
if (!mIsInitialized) {
application.addInitListener(this);
}
}
@Override
public String getName() {
return SplashIdlingResource.class.getName();
}
@Override
public boolean isIdleNow() {
return mIsInitialized;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback callback) {
mCallback = callback;
}
@Override
public void onApplicationInitCompleted() {
m_isInitialized = true;
if (m_callback != null) {
m_callback.onTransitionToIdle();
}
}
}
其中 onApplicationInitCompleted() 是您定义的回调,必须在 Splash Activity 完成初始化时调用。
最后,通过在测试设置中调用 Espresso.registerIdlingResource 向 Espresso 注册这个新的 IdlingResource。
关于安卓 Espresso : Wait for Activity to finish/start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24145655/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我已经研究这个话题太久了,所以我必须发布这个。我有几个运行此设置的应用程序,其中一个在rails启动(railss)时完全失败。它们的配置几乎完全相同,但我似乎无法在这里大海捞针。有没有人对如何找到这个问题有任何指示?设置基于:http://blog.mmlac.com/log4r-for-rails/comment-page-1/#comment-1731当我尝试运行railss时:=>BootingWEBrick=>Rails4.0.0applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Run`railsserver-h`f
显然他们在任何输入上都给我相同的输出,比如"Rubyisred".start_with?("Ruby")或"Rubyisred".starts_with?("Ruby")两者都给出相同的结果。 最佳答案 在Ruby添加String#start_with?作为核心库的一部分之前,Rails的主动支持实现了String#starts_with?方法。现在它只是为了向后兼容而保留的别名。是的-他们做同样的事情,第一个来自Ruby,第二个-来自Rails。 关于ruby-on-rails-'st
尝试运行“foremanstart”来执行我的rails文件时,我收到以下错误。dyld:Symbolnotfound:_rb_ary_new_from_valuesReferencedfrom:/Users/paulbattisson/.rvm/gems/ruby-2.1.1/gems/psych-2.0.5/lib/psych.bundleExpectedin:flatnamespace如果我运行railss那么应用程序可以正常启动,但是我想使用以下Procfile:web:bundleexecrackupconfig.ru-p$PORTresque:envTERM_CHILD=1
我已经阅读了net-ssh文档,但我仍然感到困惑。我可以手动进行身份验证(使用ssh-i...),也可以将key放在文件中并使用:keys参数。但是,我不想使用:keys参数,我想使用:key_data参数。任何人都可以举一个工作的例子吗?出于某种原因,直接将字符串输入:key_data是行不通的,它给出了错误:“既不是PUBkey也不是PRIVkey::嵌套的asn1错误”。当然,我用谷歌搜索了一下,它基本上告诉我要确保key是PEM格式。而且,当然是。有任何想法吗?如果需要,我可以提供更详细的信息... 最佳答案 我看到这个问题
我想检查我的url是否以某些字符串开头,以便随后将其保存到数据库中。字符串存储在一个数组中,由于starts_with?接受多个值,我想获取starts_with?中的所有数组值。array=["www.example.com/content1","www.example.com/content2","www.example.com/content3"]save_url=url.starts_with?()#hereIwanttoinsertallarrayvalues,buthow?ifsave_url#Iwanttocheckifsave_urlistruesomyentriesa
我需要一个应用程序来阻止HTTP请求,所以我不得不添加几行代码,唯一我想不通的是语句ifuri.scheme=='https';http.use_ssl=true有没有办法在当前语句中设置http/https:Net::HTTP.new(uri.host,uri.port).startdo|http|#CausesandIOError...ifuri.scheme=='https'http.use_ssl=trueendrequest=Net::HTTP::Get.new(uri.request_uri)http.request(request)end添加:IOError:use_ss
我最近开始使用Sidekiq并注意到它有一个我一直在寻找的很棒的功能:UserMailer.delay_until(5.days.from_now).find_more_friends_email基本上我可以在未来安排工作,所以我不需要我的应用程序持续轮询具有开始时间的新事件。现在这很有用,但我如何更改作业的开始时间?通常一些预定的事件会更改其开始时间。我如何在sidekiq中复制它?我知道我可以删除作业并创建一个新作业,但是否可以只修改开始时间?编辑:我建立在OtoBrglez的想法之上,这里是记录的代码:moduleTaskStuffclassTaskSetterincludeSi
ruby1.8.7。我正在使用带有^的正则表达式来匹配字符串开头的模式。问题是,如果在字符串中任何行的开头找到模式,它仍然匹配。如果我使用“m”修饰符但我没有使用,这是我期望的行为:$irbirb(main):001:0>str="hello\ngoodbye"=>"hello\ngoodbye"irb(main):002:0>putsstrhellogoodbye=>nilirb(main):004:0>str=~/^goodbye/=>6我在这里做错了什么? 最佳答案 行首:^行尾:$字符串的开头:\A字符串结尾:\z
快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目