gpt4 book ai didi

当使用任何属性时,Python模拟创建一个假对象返回字典

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:43 25 4
gpt4 key购买 nike

例如,我在 Django 中有一个重用请求对象的方法:

def dowork(request):
# the sessionid is a query param of the callback from payment gateway
print request.GET.get('sessionid')

当我编写unittest时,我需要创建一个假请求对象,它应该具有GET属性并且应该包含一个字典{'sessionid':'blah'}

如何使用模拟包来做到这一点?

最佳答案

通过创建一个模拟并像任何其他 Python 对象一样设置其属性来完成此操作。

唯一需要注意的是模拟是专门化的,因此它们的属性会自动用模拟填充,这使得这变得非常容易。您不需要将每个属性显式创建为模拟对象。

例如,

import mock
mock_request = mock.Mock()

mock_request.GET.get.return_value = {'sessionid': 'blah'}

x = mock_request.GET.get('sessionid')

assert x == {'sessionid': 'blah'}
mock_request.GET.get.assert_called_once_with('sessionid')

关于当使用任何属性时,Python模拟创建一个假对象返回字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372677/

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