我想使用DynamoDb的不同输入来测试函数的行为。主要有两种行为:在表中找到搜索键的时间以及何时未找到搜索键。这是该函数的最少代码:
import boto3
from boto3.dynamodb.conditions import Key
def 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 boto3
import unittest
from unittest.mock import Mock, patch
class 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)
但我无法运行模拟部分。我想知道您是否可以指导我如何模拟嵌套表和发电机变量。非常感谢您的帮助。
相关分类