升级您的AWS CDK开发:揭开Integ-Runner和Integ-Test
#aws #javascript #serverless #cdk

您是否曾经对基础架构和资源的行为感到沮丧,只是在部署后发现错误? ð«作为开发人员,我感到您的痛苦。测试是软件开发的重要方面,可能是复杂且耗时的。但是不要害怕! AWS CDK提供了两个功能强大的测试工具 - Integ-Runner和AWS-CDK Integ-Test库 - 用于简化测试过程。 ð§ªð

Meme: Don't be confused while working with AWS CDK - use integ test

本文启动了专门针对Integ-Test的系列。在这里,我们将阐明整数测试的基本原则,并深入研究围绕测试的理论。在下一篇文章中,我将引导您浏览CDK应用程序示例存储库,该存储库说明了如何实现和使用这些工具。通过本系列的结论,您将清楚地了解AWS CDK集成测试如何帮助您以减轻压力来建立更好的基础架构! ð

访问本系列中使用的Github repository

了解集成测试的价值

您可以使用单元测试来检查您的DynamoDB表或Lambda功能是否正确设置,但是您无法使用单位测试来检查它们是否彼此正确交互。这就是集成测试的到来。没有什么比模因更不言自明:

Please, don't forget integration tests.

利用最新工具来测试您的AWS CDK结构

AWS云开发套件(CDK)使开发人员可以使用熟悉的编程语言(例如Typescript)将云基础结构定义为代码。 ð©ð»ð

当我们开发CDK应用程序或库时,每个阶段通常会出现两个关键问题:

  1. 我是否无意间在基础设施中引入了缺陷? ðρ
  2. 虽然我的基础架构看起来不错,但早期运行的所有功能仍然按预期运行? ð§

在AWS CDK集成测试的背景下,有两种类型的测试可以帮助回答以下问题,这将为您带来回答:快照测试和断言测试。 ð

快照测试对于检查您的云形式模板很有用,而主张测试旨在测试您已部署资源的行为。结合在一起,它们提供了一种全面的测试方法:

Schema: snapshot and assertion testing tools

要编写集成测试,我们将利用IntegTest库。随后,我们将利用Integ-Runner运行和管理这些测试。

解开我们的测试工具

让我们继续进行GitHub存储库冒险!看看这个repo。在“测试”文件夹中,您会发现我们的各种集成测试:

Structure of the Github repository

这是典型测试文件的一个示例,其中包括新应用的声明,新的堆栈以馈送到整数测试以及根据需要进行的许多主张测试。

用Integ测试声明测试文件后,我们使用aws-cdk-lib/assertions添加断言,然后使用Integ-Runner运行它! -

快照测试

快照允许您避免每次重新进行所有测试。这是其工作方式:

Schema: snapshot testing

重新运行失败测试的集成测试,运行:

integ-runner --update-on-failed

这将运行快照测试并收集所有失败的测试。然后,它将重新执行失败测试的集成测试。如果成功,将保存新快照。

快照测试非常普遍(例如,with react components using jest)。开发人员自动使用--update-on-failed选项时通常会忽略它。

断言测试

在AWS CDK中,主张测试用于测试已部署资源的行为。开发人员使用IntegTest构造定义了集成测试。然后,使用不同的整数测试工具,进行API调用,一旦请求计时,我们可以检查导致预期事件的操作。

通过使用aws-cdk-lib/assertions,我们可以添加细粒度的断言来测试生成的云形式模板的特定方面,例如“此资源具有此属性具有此值”。这些断言在部署被认为是成功之前验证了基础架构。

这是Integ-Test及其断言工具的概述:

Schema: Assertion testing tools

结论

恭喜! ð您现在可以很好地了解集成测试在AWS CDK开发中的重要性以及利用测试功能的可用工具。

请继续关注即将发表的文章,在这里您将通过成为AWS CDK世界上熟练的集成测试仪的过程! -