我们的堆栈中没有SQS构造,但回顾示例测试可以在一定程度上了解如何测试构造。让我们删除自动生成的示例测试并创建我们自己的测试。

设置测试功能

首先,让我们创建一个可重用的函数来从堆栈中获取 CloudFormation 模板:

测试 DynamoDB 表属性

我们将首先添加一个测试来检查堆栈中的 DynamoDB 表是否具有正确的属性。操作方法如下:

测试 Lambda 函数

接下来,让我们确保我们的堆栈创建正确数量的 Lambda 函数并验证其运行时版本:

运行测试

要运行测试,您可以在终端中执行pytest

pytest

以下是您应该收到的输出:

================================================================================= test session starts =================================================================================platform darwin -- Python 3.12.4, pytest-8.1.1, pluggy-1.4.0rootdir: /Users/adrian/Developer/Projects/rss-lambda-ddb-socialshareplugins: typeguard-2.13.3collected 2 items                                                                                                                                                                     tests/unit/test_rss_lambda_ddb_socialshare_stack.py ..                                                                                                                          [100%]================================================================================= 2 passed in 21.86s ==================================================================================

结论

在我们系列的第 3 部分中,我们学习了如何测试我们的 CDK 构造。在最后一部分中,我们将探讨如何在本地测试 Lambda 函数。

资源

","image":"http://www.luping.net/uploads/20240815/172369836366bd8cbb7a11d.jpg","datePublished":"2024-08-15T13:06:03+08:00","dateModified":"2024-08-15T13:06:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 CDK v 探索 AWS 无服务器部署从 RSS 到 X Posts - Odyssey 的一部分

使用 CDK v 探索 AWS 无服务器部署从 RSS 到 X Posts - Odyssey 的一部分

发布于2024-08-15
浏览:700

Exploring AWS Serverless Deployments with CDK vFrom RSS to X Posts - Part f the Odyssey

欢迎阅读“使用 CDK v2 探索 AWS 无服务器部署”的第 3 部分。首先,我要感谢您的耐心等待,因为自第 2 部分以来一直存在一些差距。我在工作中深入研究和从事无服务器项目,这让我无法继续工作,但我很高兴能回到正轨并继续我们的探索。

在之前的文章中,我们定义了我们的构造并将其部署到 AWS。今天,我们将重点关注一个基本实践:测试。正确的测试可确保我们的部署按预期工作,并可以使我们避免潜在的问题。

开始测试

首先,您需要将 pytest 添加到项目的依赖项(我们堆栈的主 requirements.txt 文件)。

pip install -r requirements.txt

在我们的项目中,导航到 test 目录,然后导航到 unit 并打开 test_rss_lambda_ddb_socialshare_stack.py 文件。此自动生成的测试文件包含一个示例测试。

我们的堆栈中没有SQS构造,但回顾示例测试可以在一定程度上了解如何测试构造。让我们删除自动生成的示例测试并创建我们自己的测试。

设置测试功能

首先,让我们创建一个可重用的函数来从堆栈中获取 CloudFormation 模板:

测试 DynamoDB 表属性

我们将首先添加一个测试来检查堆栈中的 DynamoDB 表是否具有正确的属性。操作方法如下:

测试 Lambda 函数

接下来,让我们确保我们的堆栈创建正确数量的 Lambda 函数并验证其运行时版本:

运行测试

要运行测试,您可以在终端中执行pytest

pytest

以下是您应该收到的输出:

================================================================================= test session starts =================================================================================
platform darwin -- Python 3.12.4, pytest-8.1.1, pluggy-1.4.0
rootdir: /Users/adrian/Developer/Projects/rss-lambda-ddb-socialshare
plugins: typeguard-2.13.3
collected 2 items                                                                                                                                                                     

tests/unit/test_rss_lambda_ddb_socialshare_stack.py ..                                                                                                                          [100%]

================================================================================= 2 passed in 21.86s ==================================================================================

结论

在我们系列的第 3 部分中,我们学习了如何测试我们的 CDK 构造。在最后一部分中,我们将探讨如何在本地测试 Lambda 函数。

资源

  • Pytest
  • 测试结构
版本声明 本文转载于:https://dev.to/aws-builders/exploring-aws-serverless-deployments-with-cdk-v2-from-rss-to-x-posts-part-3-of-the-odyssey-56c3?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-25
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-05-25
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-05-25
  • 同实例无需转储复制MySQL数据库方法
    同实例无需转储复制MySQL数据库方法
    在同一实例上复制一个MySQL数据库而无需转储在同一mySQL实例上复制数据库,而无需创建InterMediate sqql script。以下方法为传统的转储和IMPORT过程提供了更简单的替代方法。 直接管道数据 MySQL手动概述了一种允许将mysqldump直接输出到MySQL clie...
    编程 发布于2025-05-25
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。要简化过程,建议将JSON作为数组而不是对象解析。执行此操作,将JSON_DECODE函数与第二个参数设置为true:[&&&&& && &&&&& json = JSON = JSON_DECODE($ j...
    编程 发布于2025-05-25
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-05-25
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 中,如果您使用一个大文件,并且需要从最后一行读取其内容,则在第一行到第一行,Python的内置功能可能不合适。这是解决此任务的有效解决方案:反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] ...
    编程 发布于2025-05-25
  • 解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    编程 发布于2025-05-25
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“检测”中的错误:在功能检测中。”当Face Cascade分类器(即面部检测至关重要的组件)未正确加载时,通常会出现此错误。要解决此问题,必须...
    编程 发布于2025-05-25
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-05-25
  • Java字符串非空且非null的有效检查方法
    Java字符串非空且非null的有效检查方法
    检查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。isement(Isement() trim whitespace whitesp...
    编程 发布于2025-05-25
  • 切换到MySQLi后CodeIgniter连接MySQL数据库失败原因
    切换到MySQLi后CodeIgniter连接MySQL数据库失败原因
    Unable to Connect to MySQL Database: Troubleshooting Error MessageWhen attempting to switch from the MySQL driver to the MySQLi driver in CodeIgniter,...
    编程 发布于2025-05-25
  • 如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    从python import codecs import codecs import codecs 导入 text = codecs.decode('这狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#带有...
    编程 发布于2025-05-25
  • 在Oracle SQL中如何提取下划线前的子字符串?
    在Oracle SQL中如何提取下划线前的子字符串?
    [ 在oracle sql 解决方案: Explanation:SUBSTR function extracts a substring starting from the specified position (0) and continuing for a specified length.IN...
    编程 发布于2025-05-25
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-05-25

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3