为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中将Mock用于嵌套对象(DynamoDB和Table)

在Python中将Mock用于嵌套对象(DynamoDB和Table)

尚方宝剑之说 2021-05-14 18:23:31
我想使用DynamoDb的不同输入来测试函数的行为。主要有两种行为:在表中找到搜索键的时间以及何时未找到搜索键。这是该函数的最少代码:import boto3from boto3.dynamodb.conditions import Keydef main(symbol):   dynamo = boto3.resource("dynamodb")   table = dynamo.Table("mytable")   data = table.query(KeyConditionExpression=Key("symbol").eq(symbol))   if data.count > 0:      # result = some_output   else:      result = {'status': '404'}   return result我想通过发送空结果和非空项目列表来进行单元测试来测试此代码,如下所示:import boto3import unittestfrom unittest.mock import Mock, patchclass TestMainHandler(unittest.TestCase):    ...   def test_main_fails_on_wrong_symbol(self):       with patch.object(main_handler, 'table') as get_mock:          get_mock.return_value = []          result = main('dummy_symbol')          expect_result = {'status': '404'}   self.assertEqual(result, expect_result)但我无法运行模拟部分。我想知道您是否可以指导我如何模拟嵌套表和发电机变量。非常感谢您的帮助。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信