如何使用Google Drive API(Java客户端)对应用程序进行单元测试

Jon*_*uis 11 java google-drive-api

使用Google Drive API(Java客户端)对应用程序进行单元测试的最佳方法是什么?

似乎编写的应用程序严重依赖于Drive类,但缺少...

  • 创建一个非常广泛的模拟(它本身可能需要测试),或
  • 根据实际的Drive服务编写集成测试

......如何测试这样的应用程序?

使用像Mockito这样的模拟框架对于Drive API(Java客户端)来说有点乏味,因为Drive Java客户端的使用依赖于进行如此多的链式调用(例如,来自文档):

Drive service = getDriveService(req, resp);
service.files().get(fileId).execute();
Run Code Online (Sandbox Code Playgroud)

Adr*_*hum 4

事实上,在深度存根的帮助下,在 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();
Run Code Online (Sandbox Code Playgroud)

Mockito 文档了解更多信息

如果您编写集成测试来测试实际的 Drive 服务,这很好,但它根本无法取代单元测试。