2

我有一个 Android 应用程序,其中启动的 Activity 启动了一个 IntentService。我想知道如何测试这个意图是否被发送。我正在使用 Robolectric,但我才刚刚开始,所以如果需要我可以将其移除。

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

4

1 回答 1

2

测试Service Intent_

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

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

验证 aFragment是否可见

验证片段是否可见的一种简单方法是对片段中的视图执行findViewById包含:Activity

@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 是一项持续不断的工作,并且会定期改进。

于 2013-09-18T23:44:51.273 回答