как JUnit тестировать IntentService

Я новичок в тестировании Android, я хочу протестировать IntentService и в настоящее время расширяю ServiceTestCase.

Я пытаюсь использовать ResultReceiver, но проблема в том, что OnReceiveResultникогда не вызывается в тестовом примере. (Я также пытался создать ResultReceiverс new Handler()в качестве аргумента, вставленного в null, но с тем же результатом.

Что я делаю не так? как правильно проверить IntentService?

это служба:

public class MyService extends IntentService {

public MyService() {
    super("MyService");
}

public MyService(String name) {
    super(name);
}

@Override
protected void onHandleIntent(Intent intent) {
    final int action = intent.getIntExtra("action", 0);
    final int request = intent.getIntExtra("request", 0);
    final ResultReceiver receiver = (ResultReceiver) intent.getExtras().get("receiver");

    if (receiver == null) {
        return;
    }

    if (action == 0 || request == 0) {
        receiver.send(0, null);

        return;
    }
}

}

и это тест:

public void testHandleInvalidRequests() {
    ResultReceiver receiver = new ResultReceiver(null) {
        @Override
        protected void onReceiveResult(int resultCode, Bundle resultData) {
            fail();
        }   
    };

    Intent intent = new Intent(mContext, MyService.class);
    intent.putExtra("receiver", receiver);
    startService(intent);

}
6
задан evg 12 August 2012 в 15:41
поделиться