多くのテスト中にAsyncTasks
、データベースにアクセスするアプリが実行されており、キャンセルできません。テストの最後に、データベースを閉じて削除し、再度開いて、新しいデータベース フィクスチャを作成します。
問題はAsyncTasks
、テストがデータベースを閉じて削除している間に がまだ実行されている場合、コードで実行時例外が発生することです。本番環境ではデータベースが閉じられないため、これが本番コードで発生することはありません。
Robotium にはfinishOpenedActivities
、テスト ティアダウン メソッドで使用するというテスト ヘルパー メソッドがあります。すべての子スレッド (具体的には AsyncTasks) も確実に終了するように finishOpenedActivities を変更する方法があれば、非常に役立ちます。それ以外の場合は、信頼できるテストをサポートするためだけに、すべての AsyncTasks でキャンセルのチェックを実装する必要があります。
すべての子スレッド (具体的には AsyncTasks) が終了するまで待機する方法はありますか?