gpt4 book ai didi

android - Espresso 测试失败 : Wanted to match 1 intent, 实际上匹配了 2 个 Intent

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

我在使用 Espresso 测试 Activity 启动时遇到此错误。

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

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

@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 Activity 。

最佳答案

您能否粘贴您收到的完整错误消息?

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

调用两次是完全合法的情况。例如,

第 1 步:点击 Button1 启动 Gallery 并选择一张图片并在 ImageView1 中显示(最初是 ImageView1GONE,现在是 VISIBLE)。
第 2 步:点击 ImageView1 再次启动图库。

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

因此 intended(hasComponent("mypackage.FundTransferActivity")); 将不起作用。而是使用:intended(hasComponent("mypackage.FundTransferActivity"), times(2));

关于android - Espresso 测试失败 : Wanted to match 1 intent, 实际上匹配了 2 个 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448615/

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