我开始使用AWS Lambda和无服务器CLI自学无服务器开发。到目前为止,一切进展顺利。但是,我在接受测试方面遇到了麻烦。
到目前为止,我正在做的是:
这很好,直到我需要一些数据为止。
在没有数据的情况下测试端点很容易-这是默认状态。因此,我可以测试GET /users/badid
返回404。
为测试设置测试数据的典型方法是什么?
在我的正常开发中,我是通过在本地docker compose堆栈中运行完整的堆栈-UI,服务,数据库来实现的,测试可以直接与它们对话。这是要遵循的过程吗?测试是否直接与各种AWS数据存储对话?如果是这样,如何处理不同CF堆栈中的多个(DynamoDB)表,例如用于测试UI?
如果这不是正常的方法,那是什么?
还有,在测试之间清除数据的标准方法吗?例如,如果数据在该测试中不是恒定不变的,我就无法安全地测试搜索端点。 (如果未清除数据,那么系统中的数据将取决于测试运行的顺序,这很不好)
欢呼
答案 0 :(得分:0)
因为,这与验收测试有关-应该将其设计为少关注体系结构(技术方面),而是更多地关注业务价值。毕竟,这种测试应该是黑匣子。从SLS或mSOA的经验来看,测试设置和挑战都非常相似。
为测试设置测试数据的典型方法是什么?
根据您的上下文,有很多方法/模式可以在这里完成工作。最适合我的是:
您可以在Fixture Teardown Patterns中查看
清除测试之间数据的标准方法
也许您不需要
让测试直接与各种AWS数据存储对话
因为您可能会创建不切实际的状态,所以如果您可以直接点击API /端点来为您完成工作。例如,无需管理多个DynamoDB实例的PutItem
调用,而只需点击register
新的用户API。有关后门操纵层here的更多信息。