Модульный тест не проходит, когда BroadcastReceiver отправляет Intent IntentService

Erik Medina спросил: 03 ноября 2018 в 08:21 в: android

У меня есть BroadcastReceiver, который запускает IntentService:

@Override
public void onReceive(Context context, Intent intent) {    ParamsRequest paramsRequest = new ParamsRequest.Builder()
            .setUrl(intent.getStringExtra("url"))
            .build();    Intent serviceIntent = new Intent(context, MyIntentService.class);
    serviceIntent.putExtra("paramsKey", paramsRequest);
    context.startService(serviceIntent);
}

И MyIntentService получает Intent (с объектом paramsRequest):

@Override
protected void onHandleIntent(Intent intent) {    ParamsRequest paramsRequest = (ParamsRequest) intent.getSerializableExtra("paramsKey");    //more code
}

У меня есть тест, чтобы убедиться, что намерение отправлено и получено правильно:

@Test
public void testStartAndroidProofService() {
    Intent intent = new Intent(context, AndroidProofService.class);
    intent.putExtra("paramsKey", paramsRequest);    receiver.onReceive(context, intent);
    assertNull(receiver.getResultData());    ArgumentCaptor<Intent> argumentIntent = ArgumentCaptor.forClass(Intent.class);
    Mockito.verify(context, times(1)).startService(argumentIntent.capture());
    assertEquals(paramsRequest, argumentIntent.getValue().getSerializableExtra("paramsKey"));
}

Но AssertEquals не удалось:


0 ответов