我正在用 Java 编写一个将文件上传到 AWS S3 的应用程序。该文件将在参数中提供给应用程序,而不是硬编码。我想编写测试以确保文件实际上传到 S3。测试将在 TDD 代码之前编写。 (实际上我已经编写了代码,但我想将 TDD 实践作为一种习惯融入到我的所有工作中)
我该如何做呢?我将使用 JUnit,因为这是我最熟悉的。
提前感谢您的帮助。
最佳答案
实际上传和正在执行的测试是您的集成测试的一部分,而不是单元测试。如果您将 S3 API 封装在一个非常薄的类中,您将模拟该类以对您的业务类进行单元测试,并且您将使用真正的实现进行集成测试。
如果您已决定,您的 business 类直接采用 AmazonS3 接口(interface),那么对于单元测试,您必须模拟该接口(interface)。
实际的探索性测试(学习和验证)amazon s3 是否以及如何工作是您在单独的实验设置中实际执行的操作。
附:我不建议直接在您的业务类中使用 AmazonS3 接口(interface),而是将其包装在您的瘦接口(interface)中,这样如果您决定更改“后端存储”,您可以轻松更改它。
关于java - 您如何测试针对 AWS API 编写的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6247018/