5

Как я могу проверить IntentService в android без использования устаревшего ServiceTestCase?Как проверить IntentService android?

Из документации ServiceTestCase:

Этот класс был устаревшим в уровне API 24. Использование ServiceTestRule вместо этого. Новые тесты должны быть написаны с использованием библиотеки поддержки тестирования Android.

Но документация ServiceTestRule говорит, что не поддерживает IntentService S:

Примечание: Это правило не поддерживает IntentService, потому что он автоматически уничтожается при onHandleIntent (android.content.Intent) завершает все выдающиеся команды. Таким образом, нет гарантии своевременного установления успешной связи.

Как я могу проверить IntentService?

ответ

4

service testing page в андроиде документации говорит (курсив мой):

Примечания: Класс ServiceTestRule не поддерживает тестирование объектов IntentService. Если вам нужно протестировать объект IntentService, , вы должны инкапсулировать логику в отдельном классе и вместо этого выполнить соответствующее тестовое тестирование .

Таким образом, официальный ответ, похоже, будет «использовать единичный тест». Тем не менее, ServiceTestCase, устаревший, не означает, что вы не можете продолжать его использовать - только это не рекомендуется. Если использование устаревшего интерфейса является единственным (или наиболее эффективным) способом достижения вашей цели, вы должны продолжать использовать его.