首页 > 解决方案 > Python mock 返回一个 MagicMock 对象而不是指定的结果值

问题描述

我想模拟测试这个功能:

def foo():
  client = boto3.client(some_args)
  return client.func_A(other_args)

所以我在测试中模拟了 boto3:

def test_foo():
  with patch('boto3') as mock_boto3:
    mock_boto3.return_value.client.return_value.func_A.return_value = 'test_val'
    foo()

这个问题是func_A返回一个MagicMock对象而不是指定的返回值。我究竟做错了什么?

<MagicMock name='boto3.client().func_A()' id='140131668642896'>

标签: pythontestingmocking

解决方案


推荐阅读