Android单元测试验证OnCreate发送的意图和显示的片段

时间:2013-09-13 23:19:08

标签: android unit-testing junit robolectric

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

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

1 个答案:

答案 0 :(得分:2)

测试Service Intent s

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

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

验证Fragment是否可见

验证片段是否可见的一种简单方法是对包含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是一项持续不断的工作,并且正在不断改进。