我有一个在 AWS 上运行的 Python 脚本。该脚本包含由 AWS 调用的 lambda_handler(event, context)
函数。现在,我想创建一个新的 lambda 函数作为单元测试。
典型的单元测试架构定义为:
import unittest
def my_function(a):
return a + 1
class Test(unittest.TestCase):
def test_correct(self):
self.assertEqual( my_function(1), 2)
if __name__ == '__main__':
unittest.main()
在 AWS 中,lambda_handler(event, context)
函数被调用。如何让 unittest_lambda_handler(event, context)
执行单元测试?
所以我猜我的代码(在单元测试脚本中)应该是这样的:
import main_lambda_function
import unittest
def unittest_lambda_handler(event, context):
#what should this function do?
class MyTest(unittest.TestCase):
def return_type(self,event, context):
self.assertTrue(isinstance(main_lambda_function.lambda_handler(event, context),int))
这是正确的方法吗?如果是这样,unittest_lambda_handler
应该做什么?
最佳答案
不确定有多少人知道在大多数情况下您甚至不需要第 3 部分库来 stub boto3 调用。 Botocore
提供开箱即用的 stubber
Reference
此类将允许您对请求进行 stub ,这样您就不必点击端点来编写测试。响应以先入先出的方式返回。如果操作被乱序调用,或者在没有剩余排队响应的情况下被调用,则会引发错误。
关于python - AWS Lambda 上的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287018/