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

问题描述 投票:9回答:1

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

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

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

@RunWith(AndroidJUnit4.class)
public class HomeActivityTest {

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


  @Test
  public void testFundTransferActivityStarted() {

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

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

}

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

android android-espresso android-testing
1个回答
12
投票

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

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

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

第1步:点击qazxsw poi启动画廊并选择图像并在qazxsw poi中显示(最初qazxsw poi是Button1,现在它是ImageView1)。 第2步:点击ImageView1再次启动Gallery。

现在,如果你想测试“点击GONE应该启动Gallery”,那么你不能简单地点击VISIBLE,因为它最初不可见。你需要先点击ImageView1。如果这样做,则需要两次启动Gallery。

因此ImageView1将无法运作。而是使用:ImageView1

© www.soinside.com 2019 - 2024. All rights reserved.