提升您的 AWS CDK 开发水平:揭秘 integ-runner 和 integ-test
你是否经常因为测试基础设施和资源的行为,却在部署后才发现错误而感到沮丧?😫 作为一名开发人员,我完全理解你的感受。测试是软件开发中至关重要的一环,但它也可能既复杂又耗时。不过别担心!AWS CDK 提供了两个强大的测试工具——integ-runner 和 aws-cdk integ-test 库——可以简化测试流程。🧪🚀
本文开启了集成测试系列文章。我们将深入探讨集成测试的基本原理,并深入研究相关的理论。在下一篇文章中,我将通过一个 CDK 应用示例仓库,演示如何实现和使用这些工具。读完本系列文章后,您将清楚地了解 AWS CDK 集成测试如何帮助您更轻松地构建更完善的基础设施!🎉
访问本系列文章中使用的Github代码库。
理解集成测试的价值
你可以使用单元测试来检查你的 DynamoDB 表或 Lambda 函数是否设置正确,但你不能使用单元测试来检查它们之间是否能够正确交互。这就是集成测试的作用所在。正如一个梗图所解释的那样:
利用最新工具测试您的 AWS CDK 构造
AWS 云开发工具包 (CDK) 使开发人员能够使用 TypeScript 等熟悉的编程语言将云基础设施定义为代码。👩💻🚀
在开发 CDK 应用或库的过程中,每个阶段通常都会出现两个关键问题:
- 我是否无意中在我的基础设施中引入了缺陷?🤔
- 虽然我的基础设施看起来没问题,但之前运行正常的功能现在还能正常运行吗?🧐
在 AWS CDK 集成测试的背景下,有两种类型的测试可以帮助解答这些问题并最终找到答案:快照测试和断言测试。✅🔍
快照测试可用于检查 CloudFormation 模板,而断言测试则旨在测试已部署资源的行为。两者结合使用,可提供全面的测试方法:
为了编写集成测试,我们将使用 IntegTest 库。随后,我们将利用 integ-runner 来运行和管理这些测试。
拆解我们的测试工具
让我们一起探索 GitHub 代码库吧!看看这个代码库。在“tests”文件夹里,你会找到我们编写的各种集成测试:
这是一个典型的测试文件示例,它包括新应用程序的声明、要提供给 integ-test 的新堆栈以及所需的断言测试。
用 integ-tests 声明好测试文件后,我们就aws-cdk-lib/assertions可以添加断言,然后用 integ-runner 运行它了!🏃♀️🏃♂️
快照测试
快照功能可以避免每次都重新运行所有测试。其工作原理如下:
要重新运行失败的集成测试,请运行:
integ-runner --update-on-failed
这将运行快照测试并收集所有失败的测试。然后,它将针对失败的测试重新执行集成测试。如果成功,则会保存新的快照。
快照测试非常常见(例如,使用 Jest 测试 React 组件时)。开发者在自动使用默认选项时,往往会忽略快照测试--update-on-failed。
断言测试
在 AWS CDK 中,断言测试用于测试已部署资源的行为。开发人员使用IntegTest特定构造定义集成测试。然后,使用不同的集成测试工具进行 API 调用,并在请求超时后检查操作是否产生了预期的事件。
通过使用该方法aws-cdk-lib/assertions,我们可以添加细粒度的断言来测试生成的 CloudFormation 模板的特定方面,例如“此资源具有此属性及其值”。这些断言会在部署被视为成功之前验证基础架构。
以下是 integ-test 及其断言工具的概述:
结论
恭喜!🎉 您现在对 AWS CDK 开发中集成测试的重要性以及可用于发挥测试作用的工具有了很好的了解。
敬请期待下一篇文章,我们将指导您如何成为一名精通 AWS CDK 集成测试的专家!✨
文章来源:https://dev.to/slsbytheodo/level-up-your-aws-cdk-development-demystifying-integ-runner-and-integ-test-542j





