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被棄用並不意味着你不能繼續使用它 - 只是這樣做是不鼓勵的。如果使用已棄用的界面是實現目標的唯一(或最有效的)方法,那麼您應該繼續使用它。