我有一个 Android 应用程序,其中启动的 Activity 启动了一个 IntentService。我想知道如何测试这个意图是否被发送。我正在使用 Robolectric,但我才刚刚开始,所以如果需要我可以将其移除。
我还让我的 onCreate 根据是否加载了某些数据来显示一个片段。这来自单例。我想知道如何测试该片段是否显示。
我有一个 Android 应用程序,其中启动的 Activity 启动了一个 IntentService。我想知道如何测试这个意图是否被发送。我正在使用 Robolectric,但我才刚刚开始,所以如果需要我可以将其移除。
我还让我的 onCreate 根据是否加载了某些数据来显示一个片段。这来自单例。我想知道如何测试该片段是否显示。
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());
}
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 是一项持续不断的工作,并且会定期改进。