android – Espresso与意图之间的区别是什么?

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

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

我误解了它的用法. 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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...