如何测试针对 AWS API 编写的代码 [已关闭]

2022-09-02 09:19:27

我正在用 Java 编写一个应用程序,它将上传一个文件到 AWS S3。该文件将在参数中提供给应用程序,而不是硬编码。我想编写测试以确保文件实际上传到S3。测试将在TDD代码之前编写。(我实际上已经编写了代码,但我想将TDD实践作为一种习惯嵌入到我的所有工作中)

我到底该怎么做?我将使用JUnit,因为这是我最熟悉的。

提前感谢您的任何帮助。


答案 1

实际上传和正在执行的测试是集成测试的一部分,而不是单元测试。如果将 S3 API 包装在一个非常薄的类中,您将模拟该类以对业务类进行单元测试,并且您将使用实际实现进行集成测试。
如果您已经决定,您的业务类直接采用AmazonS3接口,那么对于单元测试,您必须模拟该接口。

实际的探索性测试(学习和验证)是否以及 Amazon s3 的工作原理是您在单独的实验设置中实际执行的操作。

附言:我不建议直接在您的业务类中使用AmazonS3接口,而是将其包装在您的精简界面中,以便如果您决定更改“后端存储”,则可以轻松更改它。


答案 2

我不是Java程序员,但你可能想研究嘲笑。有一个名为MockService的SoapUI工具,它似乎允许模拟外部服务,例如AWS提供的外部服务。


推荐