gpt4 book ai didi

Android 单元测试验证 OnCreate 是否发送 Intent 并显示该 fragment

转载 作者:行者123 更新时间:2023-11-29 00:26:47 26 4
gpt4 key购买 nike

我有一个 Android 应用程序,其中启动 Activity 启动了一个 IntentService。我想知道如何测试发送此 Intent 。我正在使用 Robolectric,但我才刚刚开始,所以如果需要我可以删除它。

我的 onCreate 也根据是否加载了某些数据显示了一个 fragment 。这来自单例。我想知道如何测试该 fragment 是否显示。

最佳答案

测试服务 Intent

要测试 IntentService,您的测试可以使用 Robolectric.getShadowApplication().getNextStartedService(),它将返回用于启动的 Intent 对象服务。然后,您可以对 Intent 执行断言以验证操作是否符合预期。

@Test
public void shouldStartMyIntentService() throws Exception {
Intent serviceIntent = Robolectric.getShadowApplication().getNextStartedService();
assertEquals("MY_INTENT_ACTION", serviceIntent.getAction());
}

验证 fragment 是否可见

验证 fragment 是否可见的一种简单方法是在 fragment 中的 View 的包含 Activity 上执行 findViewById:

@Test
public void shouldShowPuppyFragment() throws Exception {
Activity activity = Robolectric.buildActivity(PuppyAndKittenActivity.class).create().visible().get();
assertEquals(View.VISIBLE, activity.findViewById(R.id.puppies).getVisibility());
assertNull(activity.findViewById(R.id.kittens));
}

旁注...

强烈建议立即使用 Robolectric 2.2-SNAPSHOT 版本。自 2.1.1 发布以来,已经进行了很多非常好的更改,我不确定何时会发布新版本。 Robolectric 是一项不断进步的工作,并且会定期改进。

关于Android 单元测试验证 OnCreate 是否发送 Intent 并显示该 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796633/

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