从 S3Bucket 传输管理器下载目录的集成测试



我已使用传输管理器生成器从 S3 存储桶成功下载目录。代码如下。

TransferManager transferManager = 
TransferManagerBuilder.standard().withS3Client(client).build();
MultipleFileDownload download = 
transferManager.downloadDirectory(bname, key, destfile);

现在我正在尝试为相同的内容编写测试。我在下面嘲笑了Amazon s3Client代码。

AmazonS3 client = Mockito.mock(AmazonS3.class);

中存在空指针异常

transferManager.downloadDirectory(bname, key, destfile); 

请帮我编写单元测试!

不要嘲笑你不拥有的东西。

嘲笑别人的代码会做出你无法保证的假设,特别是如果你升级了你正在使用的库。

您可以改为执行以下几项操作:

  1. 使用 WireMock 等工具创建模拟 S3,并使用它来创建集成测试。此工具允许您记录/播放与服务器的 HTTP 交互。如果您升级,这最终仍可能中断。
  2. 使用针对真实 S3 与真实 Amazon 客户端运行的合约测试,以查看它是否实际有效。我会把它放在一个单独的版本中,偶尔运行它,以确保你仍然兼容。

您可以(并且可能应该(同时使用两者。

相关内容

  • 没有找到相关文章

最新更新