Как 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
Это нормально, если вы пишете тест интеграции для тестирования фактического сервиса Диска, но он просто не может заменить модульное тестирование.