【问题标题】:AWS CDK Boto 3 Unit Testing - How to mock Boto3 secrets managerAWS CDK Boto 3 单元测试 - 如何模拟 Boto3 密钥管理器
【发布时间】:2022-10-06 16:25:01
【问题描述】:

任何人都有关于如何在单独的方法中模拟 boto3 机密管理器客户端的 get_secret_value 方法而不将客户端传递给该方法的想法?坚持了几天,现在。任何想法,github上可能的工作代码的链接将不胜感激。

标签: amazon-web-services unit-testing boto3 aws-cdk aws-secrets-manager


【解决方案1】:

Boto3 有自己的存根,但我更喜欢使用 python unittest.mock,如下所示:

您在 my_app 中的代码

import boto3


def call_under_test():
    sm = boto3.client('secretsmanager')
    sm.get_secret_value(SecretId='my-secret')

您的测试可能如下所示:

from unittest.mock import Mock, patch

import my_app


@patch('my_app.boto3.client')
def test_get_secret(mock_client: Mock):
    secret = {'SecretString': 'some-secret'}
    mock_client.return_value.get_secret_value.return_value = secret
    my_app.call_under_test()  # here is you unit to test
    mock_client.assert_called_with('secretsmanager')
    mock_client().get_secret_value.assert_called_with(SecretId='my-secret')


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多