2

AndroidのJUnit Frameworkを使用して自動化テストシナリオを実現しようとしていました。1 つの非同期シナリオを含めたかったので、CountDownLatch を使用しました。

サービスの ServiceTestCase を使用してテストケース ファイルを作成しました。サービスは、スレッドを使用して非同期操作を自動的に開始します。非同期操作を行った後、結果が得られます。この結果は私が主張しようとしています。操作が失敗した場合は、非同期操作を再度試みます。今起こっていることは、操作が失敗した場合、操作をやり直そうとすることです。この場合、コンテキストをnullとして取得しています。

テストケースからサービスを開始すると、しばらくするとコンテキストオブジェクトがnullになりますか? ガベージコレクションはいつですか?

私が使用しているサービスはリモート サービスです。それは問題を引き起こしていますか?

public class MyServiceTest extends ServiceTestCase<MyService>{
final CountDownLatch signal = new CountDownLatch(1);
Solo solo;
public MyServiceTest() {
    super(MyService.class);

}

public void testEndToEnd(){


    Intent intent = new Intent(MyService.class.getName());
    startService(intent);

    try {
        signal.await(60, TimeUnit.SECONDS);
    }
    catch(InterruptedException e) {
        e.printStackTrace();
    }

//want to put some assert statement
}    

}

サービスの onCreate で、大量のネットワーク操作を行う Network クラスをインスタンス化しています。操作が失敗した場合は、ブロードキャスト通知を送信します。これで、通知を受信して​​ネットワーク操作を再開する BroadcastReceiver が 1 つ登録されました。この BroadcastReciever では、null になるブロードキャスト コンテキストが必要です。

4

0 に答える 0