5

非推奨のServiceTestCaseを使用せずにアンドロイドのIntentServiceをテストするにはどうすればよいですか?このクラスではなく、APIレベル24 使用ServiceTestRuleに廃止されましたIntentService androidをテストするには?

ServiceTestCaseのドキュメントから

。新しいテストは、Androidテストサポートライブラリを使用して作成する必要があります。

しかしServiceTestRuleドキュメント、それはIntentServiceのサポートされていないと言う:

注:onHandleIntent(android.content.Intent)は、すべての未処理が完了したときに自動的に破棄されますので、このルールはIntentServiceをサポートしていません。コマンド。 したがって、適時に接続を確立する保証はありません。

IntentServiceはどのようにテストする必要がありますか?

答えて

4

アンドロイドドキュメントのservice testing pageは(強調鉱山)言う:

注:ServiceTestRuleクラス IntentServiceオブジェクトのテストをサポートしていません。 IntentServiceオブジェクトをテストする必要がある場合は、 はロジックを別のクラスにカプセル化し、代わりに 対応ユニットテストを作成する必要があります。

したがって、公式の答えは「単体テストを使用する」と思われます。ただし、ServiceTestCaseが廃止されても、それを使用できなくなるわけではありません。廃止予定のインターフェースを使用して目標を達成する唯一の(または最も効率的な)方法であれば、引き続き使用する必要があります。

関連する問題