gpt4 book ai didi

python - 测试模拟是否与其他模拟一起调用

转载 作者:行者123 更新时间:2023-11-30 22:42:19 27 4
gpt4 key购买 nike

我正在尝试测试是否用另一个模拟对象调用了一个模拟对象。

@patch(__name__ + '.xero_helper.PublicCredentials')
@patch(__name__ + '.xero_helper.Xero')
def testGetValidPublicXeroInstance(self, XeroMock, CredentialsMock):
xero_helper.get_xero_instance('abc') # Do relevant stuff

CredentialsMock.assert_called_with(**org.oauth_credentials) # OK
XeroMock.assert_called_once() # OK
XeroMock.assert_called_with(CredentialsMock) # Not OK

前两个 assert 通过,而最后一个给出

AssertionError: Expected call: Xero(<MagicMock name='PublicCredentials' id='4377636560'>)
Actual call: Xero(<MagicMock name='PublicCredentials()' id='4377382544'>)

验证使用CredentialsMock调用XeroMock的正确方法是什么?

最佳答案

您的代码调用了CredentialsMock模拟对象,大概是为了创建一个实例。请注意结果名称中的 ():

<MagicMock name='PublicCredentials()' id='4377382544'>
# ^^ called

当您只传入模拟本身时:

<MagicMock name='PublicCredentials' id='4377636560'>
# ^ not called

测试return_value结果:

XeroMock.assert_called_with(CredentialsMock.return_value)

关于python - 测试模拟是否与其他模拟一起调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42194206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com