11

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

似乎编写的应用程序在很大程度上依赖于Drive类,但两者都没有......

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

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

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

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

1 回答 1

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();

从Mockito 的文档中了解更多信息

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

于 2012-11-19T02:19:18.277 回答