gpt4 book ai didi

android - Espresso 中的 intending 与 intended 之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:51 25 4
gpt4 key购买 nike

自从我学习 Espresso 以来已经 2 周了,我无法理解 intendingintended。什么时候使用 intendingintended?提供的示例和在线教程没有帮助,研究网络对我弊大于利。

在语义上,对于智力引用,为什么它是 intend-ing 和另一个 intended,这增加了更多的困惑。这是另一个谷歌命名错误还是只是我?这两种方法真的没有意义。

我误解了它的用法。 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()));
}

即使我用错误的目标替换 Intent ,这个测试也总是通过。

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

非常感谢任何解释!

最佳答案

不同之处在于 Intended 仅验证 Intent 已启动(您想要的)。 Intending 将在启动 Intent 时返回结果。

对于 Intended(如果您想检查 Intent 是否确实启动了您的 Activity)

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

如果您按下按钮并启动,比方说,MyActivity,并且您为 TagListActivity 测试 intended,这将失败。它将抛出以下错误:

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 中的 intending 与 intended 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39727106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com