当前位置:  开发笔记 > 编程语言 > 正文

Espresso测试失败:想要匹配1个意图,实际匹配2个意图

如何解决《Espresso测试失败:想要匹配1个意图,实际匹配2个意图》经验,为你挑选了1个好方法。

我在使用espresso测试活动启动时遇到此错误.

android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:想要匹配1个意图.实际上匹配了2个意图.

令人惊讶的是,相同代码的其他活动启动测试正在通过.

@RunWith(AndroidJUnit4.class)
public class HomeActivityTest {

  @Rule
  public final IntentsTestRule mHomeActivityRule = new IntentsTestRule(HomeActivity.class);


  @Test
  public void testFundTransferActivityStarted() {

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

    intended(hasComponent("mypackage.FundTransferActivity"));
 }

}

按钮单击只需使用startActivity启动FundTransfer活动.



1> Henry..:

你能粘贴你得到的完整错误信息吗?

错误消息也将匹配2 Intents的配置.如果这两个意图具有相同的配置,则意味着您正在调用startActivity两次,即在测试开始和测试结束之间.以下答案适用于最终两次调用相同Intent的特定情况.

两次通话是完全合法的案例.例如,

第1步:点击Button1以启动图库并选择一个图像并显示ImageView1(最初ImageView1GONE,现在是它VISIBLE).
第2步:点击ImageView1再次启动图库.

现在,如果您想测试"点击ImageView1应该启动图库",那么您不能简单地点击,ImageView1因为它最初不可见.你需要先点击Button1.如果这样做,则需要两次启动Gallery .

因此intended(hasComponent("mypackage.FundTransferActivity"));不会奏效.而是使用:intended(hasComponent("mypackage.FundTransferActivity"), times(2));

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有