我有一个Android应用,其中启动Activity启动IntentService。我想知道如何测试此意图是否已发送。我正在使用Robolectric,但我刚刚开始,所以如果需要我可以删除它。
我还让onCreate根据是否加载某些数据显示了一个片段。这来自一个单身人士。我想知道如何测试是否显示该片段。
答案 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是一项持续不断的工作,并且正在不断改进。