2

開始アクティビティが IntentService を開始する Android アプリがあります。このインテントが送信されたことをテストする方法を知りたいです。Robolectric を使用していますが、まだ始めたばかりなので、必要に応じて削除できます。

一部のデータがロードされているかどうかに基づいてフラグメントを表示する onCreate もあります。これはシングルトンに由来します。そのフラグメントが表示されるかどうかをテストする方法を知りたいです。

4

1 に答える 1

2

テスト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 は常に進行中の作業であり、定期的に改善されています。

于 2013-09-18T23:44:51.273 に答える