作为现代云基础架构平台的关键组件,CDK(Cloud Development Kit)被越来越多的团队应用在了他们的产品开发当中。尤其是在AWS的生态系统中,CDK已经成为了构建基础设施代码的近乎标配的开发工具。

CDK的优点自不必说,它允许开发者以TypeScript、JavaScript或Python的方式编写CloudFormation Stack的定义,大大简化了基础设施的构建和管理。但CDK也面临着许多的挑战,其中一个最突出的问题就是测试。

在使用CDK编写基础设施代码时,测试不可或缺。但是,你真的需要测试每一行CDK应用程序的代码吗?答案是否定的。

不要试图测试每一行CDK应用程序的代码

在实践中,测试每一行CDK应用程序的代码是一个非常繁琐且不现实的任务。CDK应用程序通常由数千行代码组成。在手动执行场景的情况下,测试这些代码最终必须通过人的直觉和判断力来完成,但这并不是一个可靠的解决方案。

与此同时,完全覆盖所有代码路径需要几乎无限数量的测试用例。这个任务非常耗费时间和成本,并且经常会导致多余和冗余的测试代码。

简而言之,测试每一行CDK应用程序的代码不仅是不建议的,而且是不现实的。

如何避免测试每一行CDK应用程序的代码?

要解决测试CDK应用程序的问题,首先必须理解测试的目的。测试不是为了测试每一行代码,而是为了确保CDK应用程序的某些关键功能是正常工作的。

在CDK应用程序中,关键功能包括:

– 栈中的资源是否按照预期创建或更新;

– 资源之间是否正确连接和配置;

– 是否正确启用了存储,安全和可扩展性;

考虑到这些关键功能,可以编写测试用例来覆盖有意义的测试场景。至少应该针对每个CDK应用程序创建一个集成测试,逐步构建测试场景,以确保框架和关键功能正确工作。

因此,针对CDK应用程序测试的重点不是要测试每一行代码,而是确保关键功能得到了测试,并在满足应用程序的要求时保持健壮和可靠。

结论

作为CDK应用程序的开发者,你必须遵循一套全面的测试流程,但你不需要测试你的CDK应用程序的每一行。

相反,你应该专注于测试与应用程序标准中描述的关键功能相关的部分,确保系统在所有按照规范执行的场合下都能够有效运行。

正因如此,只有拥有足够的测试策略以及关键功能的测试才能真正地保证您的CDK应用程序的生产环境的稳定性。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/