5

如何在不使用已弃用的ServiceTestCase的情况下在Android中测试IntentService如何测试IntentService android?

ServiceTestCase的文档:

这个类是在API级别24 使用ServiceTestRule代替过时。应使用Android测试支持库编写新的测试。

ServiceTestRule文件说,它不支持IntentService S:

注:此规则不支持IntentService因为它自动销毁时onHandleIntent(android.content.Intent)完成所有悬而未决命令。 因此,无法及时建立成功的连接。

我该如何测试IntentService呢?

回答

4

的Android文档中的service testing page说(重点煤矿):

注:ServiceTestRule类不支持 IntentService对象的测试。如果你需要测试一个IntentService对象,you 应该把逻辑封装在一个单独的类中,而不是创建一个相应的单元测试。

所以官方的答案似乎是“用单元测试来代替”。然而,ServiceTestCase被弃用并不意味着你不能继续使用它 - 只是这样做是不鼓励的。如果使用已弃用的界面是实现目标的唯一(或最有效的)方法,那么您应该继续使用它。