В Android Studio 1.1 при запуске тестов с использованием конфигурации Run / Debug | Средство тестирования Android на любом тестируемом модуле (UUT), который расширяет IntentService, код ServiceTestCase.java (JUnit?) Не вызывает метод onHandleIntent (намерение) в проверяемом оборудовании. ServiceTestCase вызывает только onCreate, поэтому проблема в тестовом коде.
protected void startService(Intent intent) {
if (!mServiceAttached) {
setupService();
}
assertNotNull(mService);
if (!mServiceCreated) {
mService.onCreate();
mServiceCreated = true;
}
mService.onStartCommand(intent, 0, mServiceId);
mServiceStarted = true;
}
В моем файле smSimulatorTest.java:
public class smSimulatorTest extends ServiceTestCase<smSimulator>
На данный момент я ищу другие решения в среде тестирования, которые проверяют UUT через Intents, поскольку именно так создается IntentService.
http://developer.android.com/reference/android/app/IntentService.html - Чтобы использовать его, расширьте IntentService и внедрите onHandleIntent (Intent). IntentService получит Intents, запустит рабочий поток и остановит службу соответствующим образом.
Я, как и другие, помещаю свой код в onHandleintent (), как указано в приведенной выше документации, однако ServiceTestCase тестирует только onStart, а onStartCommand показано выше.