自从我学习浓缩咖啡以来已经有两周时间了,我无法掌握有意和有意的事情.我何时使用有意和有意?提供的示例和在线教程没有帮助,研究网络对我造成的伤害大于好处.

在语义上,为了智力参考,为什么它打算和另一个打算,这更多地增加了混乱.这是另一个谷歌命名错误还是仅仅是我?这两种方法真的没有意义.

我误解了它的用法. I wanted to test if my activity A launched activity B.就是这样.这是我的代码:

@Test
public void shouldLaunchTagListActivity()
{
    onView(withId(R.id.edittext_description_minimized))
            .perform(click());

    onView(withId(R.id.linearlayout_add_note_maximize))
            .check(matches(isdisplayed()));

    onView(withId(R.id.relativelayout_quick_action_button))
            .check(matches(isdisplayed()));

    onView(withId(R.id.imagebutton_tag))
            .perform(click());

    // should I intended or intending here?
    // ???
    intended(toPackage(HomeScreenActivity.class.getName()));

    onView(withId(R.id.coordinatorlayout_tag_list))
            .check(matches(isdisplayed()));
}

即使我用错误的目标取代意图,这个测试总是通过.

我可以通过检查我的目标视图是否存在并且是否被用户看到来检查是否已启动其他活动.但现在我将运行一个不同的用户故事,我真的需要检查活动是否发送了请求以启动另一个活动(我的活动,而不是外部).

非常感谢任何解释!

解决方法

区别在于Intended仅验证Intent是否已启动(您想要什么).当Intent启动时,Intending将返回结果.

对于预期(如果您想检查意图是否确实启动了您的活动)

intended(hasComponent(TagListActivity.class.getName()));

如果您按下按钮并启动,例如MyActivity,并且您针对TagListActivity进行测试,则会失败.它会抛出以下错误:

android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 0 intents.

现在,如果您正在测试onActivityResult是否已正确处理,您将使用Intending并传入类似于此的ActivityResult:

Intent resultData = new Intent();
resultData.putExtra("resultData","fancyData");
ActivityResult result = new ActivityResult(Activity.RESULT_OK,resultData);

intending(toPackage(HomeScreenActivity.class.getName())).respondWith(result));

// Perform action that throws the Intent
onView(withId(R.id.imagebutton_tag)).perform(click());

// Verify your Activity is in the state it should be here.

因此,在这种情况下,如果您希望“HomeScreenActivity”返回某些内容,则可以使用Intending.

android – Espresso与意图之间的区别是什么?的更多相关文章

  1. 在iOS(iPhone / iPad / iPod)上查找所有注册的mime-types / url方案协议(intent filters)

    我是移动网络开发人员,我想测试一些iOS设备,以查看iOS设备可以接受的MIME类型和网址计划.在Android上,我可以安装一个名为PackageExplorer的应用程序,该应用程序列出了所有apks的所有“intentfilters”,并列出了什么文件mime-types(image/png,text/html,text/x-vcard)和url方案像geo:,tel:,sms:,mailt

  2. android – 如何在Intent ACTION_SEND中将超链接传递给Gmail?

    可能是这个问题已经被问到或者是另一个问题的重复,但是我的搜索没有得到任何解决方案.以下是我对我的问题所遵循的链接:Link1Link2实际上,我的问题与使用ACTION_SEND在Android默认意图中共享HTML文本有关.当我尝试创建具有不同值的URL的超链接时,它显示一个简单的值文本.这不是可点击的链接.我是这样做的:对于body2:当我使用Gmail共享文本时,电子邮件中的超链接文本将作为

  3. android – 在Firebase邀请中设置目标邮件地址

    我计划使用Firebase邀请,以便我的应用用户可以联系他/她已在应用中添加到其管理中的人员.我已经拥有这些目标人员的邮件地址,因此我希望能够在设置应用邀请时使用此信息.此刻这似乎不可能.我目前的代码:我正在寻找的是这样的:要么:此时,用户必须从他的联系人手动选择用户.这将来有可能吗?解决方法这不是Firebase邀请中当前可用的内容.也就是说,我将向团队提交功能请求,如果此功能可用,将来会更新此错误.谢谢你的建议!

  4. Android架构组件ViewModel – 如何在测试Activity上模拟ViewModel?

    我正在尝试设置类似于GithubbrowserSample的UI测试,看起来示例项目只有Frag的模拟viewmodel而不是Activity的示例.这是我的代码,我试图通过模拟viewmodel来测试Activity.但viewmodel未在Activity中的onCreate()之前设置.有人可以帮我解决这个问题吗?解决方法JUnit@Rules在@Before方法之前进行设置,因此您的活动在

  5. Android:事件ACTION_POWER_CONNECTED未发送到我的BroadcastReceiver

    我花了5个小时才发现这个愚蠢的错误.我认为AndroidEclipse插件应该在manifestxml中进行一些语法检查.

  6. android – 在AccountManager中添加帐户可能导致死锁

    实现身份验证服务和活动,登录后,您可以通过活动将凭据保存在共享首选项中…auth活动可以通过intent正常调用

  7. android – 如何找出服务(不在我的应用程序中)的启动意图?

    我想了解Google地图服务是如何自动启动的.当我转储主缓冲区或事件缓冲区的logcat时,我只能找出谷歌地图的哪个组件启动,但没有关于“谁”(包)启动它的线索,以及“如何”(意图)?有没有可用于查找它们的调试方法?解决方法我设法找到了“如何”,但仍然没有找到关于“谁”的线索.“怎么样”运行dumpsys活动服务,请参阅intent字段:

  8. Android屏幕保护程序示例代码

    我在Android屏幕保护程序上寻找示例代码.我试过谷歌但很难找到任何有用的结果.有没有人对此有任何好的样品?还是自定义锁屏?

  9. android – 当从外部应用程序请求图像时,我的应用程序必须覆盖哪些intent-filters才能出现在选择器中?

    我需要涵盖哪些可能的意图过滤器,以确保请求图像的任何外部应用程序将在列表中看到我的应用程序?为了澄清,我希望在执行以下操作时显示我的应用:到目前为止,我已经介绍过:但是,如果使用Tumblr应用程序并按“添加照片”,我的应用程序不会出现在选择器对话框中.我错过了哪个过滤器?解决方法我已经介绍了正确的intent-filters,但是Tumblr应用程序需要类别OPENABLE,所以我现在使用的是过滤器,而不是我现在使用的过滤器:只添加行:

  10. 使用Context.startForegroundService(Intent)而不是Context.startService(Intent)对前台服务有什么好处?

    我在thedocs中读到Context.startForegroundService()有一个隐含的承诺,即启动的服务将调用startForeground().但是,由于AndroidO即将推出后台和前台服务的更改,与使用较旧的startService()方法相比,是否还有其他性能改进,或者它是最佳实践?解决方法它既不是性能改进,也不是好处,也不是最佳实践.从API26开始,系统不允许后台应用程序

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部