我有使用boto3.client()
连接到dynamoDB的lambdas。
我试着这样测试
@mock.patch("boto3.client")
def test(self, mock_client, test):
handler(event, context)
print(mock_client.call_count) # 1
print(mock_client.put_item.call_count) # 0
然而,模拟客户端调用计数是1,而不是放置项目调用计数。
我的联络人是这样的:
def handler(event, context):
dynamodb = boto3.client('dynamodb')
response = dynamodb.put_item(// same attributed)
有什么建议,如何测试,如果正确的项目得到了放在数据库中,而不使用摩托车?
1条答案
按热度按时间y53ybaqx1#
我相信你已经很接近了,只是有个小问题。
当你的mock boto3.client被调用时,它返回另一个mock,你想要评估 * 那个 * mock
call_count
。通过访问原始mock的return_value
,你就可以访问创建的magic mock。您当前评估的是
boto3.client.put_item
的调用计数,而不是boto3.client("dynamodb").put_item()
。