我有一个pytest装置,使用^{
@pytest.fixture(scope='function', autouse=True)
def client_mock(request):
with patch.multiple(api_client,
method1=MagicMock(return_value=fixture1),
method2=MagicMock(return_value=fixture2),
method3=MagicMock(return_value=fixture3)) as mocks:
yield mocks
这似乎很好,但是,当我尝试访问mock时(通过向测试函数添加client_mock
参数),我得到一个空字典({}
)。为什么它不包含任何模拟
如果已经提供了模拟,则
patch.multiple
不会在上下文管理器中返回值-仅当使用DEFAULT
自动创建模拟时如果需要在测试中访问模拟,可以使用
DEFAULT
并在创建模拟后调整模拟:或者,您可以事先构造模拟,然后自己创建返回的字典:
通常情况下,您可能只想修补对象,而不需要在测试中访问它们。在这种情况下,您可以使用:
我同意,这方面的文件不是很清楚,因此可能会造成此类误解
相关问题 更多 >
编程相关推荐