Как unit test приложение с использованием Google Диска API (клиент Java)

Каков наилучший способ использования unit test приложения с помощью API Google Диска (клиент Java)?

Похоже, что написанные приложения сильно зависят от класса Drive, но не могут...

  • создание действительно обширного макета (который, сам по себе, скорее всего, понадобится быть протестированным) или
  • запись теста интеграции в зависимости от фактического сервиса Диска

... как можно протестировать такое приложение?

Использование макетных фреймворков, таких как Mockito, немного утомительно с API-интерфейсом Drive (Java-клиент), поскольку использование клиента Java Java-диска основывается на создании так много прикованных (например, из документации):

Drive service = getDriveService(req, resp);
service.files().get(fileId).execute();

Ответ 1

Это не должно быть утомительно в Mockito на самом деле, с помощью глубокого заглушки:

Drive mockDrive = mock(Drive.class, RETURNS_DEEP_STUBS);

....
// stubbing
when(service.files().get(anyString()).execute()).thenReturn(something);

// verify
verify(service.files().get("Some Field ID").execute();

Узнайте больше из документации Mockito

Это нормально, если вы пишете тест интеграции для тестирования фактического сервиса Диска, но он просто не может заменить модульное тестирование.