開始アクティビティが IntentService を開始する Android アプリがあります。このインテントが送信されたことをテストする方法を知りたいです。Robolectric を使用していますが、まだ始めたばかりなので、必要に応じて削除できます。
一部のデータがロードされているかどうかに基づいてフラグメントを表示する onCreate もあります。これはシングルトンに由来します。そのフラグメントが表示されるかどうかをテストする方法を知りたいです。
開始アクティビティが IntentService を開始する Android アプリがあります。このインテントが送信されたことをテストする方法を知りたいです。Robolectric を使用していますが、まだ始めたばかりなので、必要に応じて削除できます。
一部のデータがロードされているかどうかに基づいてフラグメントを表示する onCreate もあります。これはシングルトンに由来します。そのフラグメントが表示されるかどうかをテストする方法を知りたいです。
Service
Intent
_テストをテストするには、サービスの開始に使用されるオブジェクトを返すものをIntentService
使用できます。次に、インテントでアサーションを実行して、アクションが期待どおりであることを確認できます。Robolectric.getShadowApplication().getNextStartedService()
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 は常に進行中の作業であり、定期的に改善されています。