我有以下两个函数,我正在尝试使用magicMock编写unittest用例。你知道吗
import json
from unittest import mock
from unittest.mock import MagicMock
def get_response(m, time):
response = get_data(m, time)
return response
def my_method():
m = ''
time = "2019-08-30"
resp = get_response(m, time)
if resp.status_code = 200:
data = json.loads(resp.text)
我正在尝试编写unittest用例,以使用MagicMock获取响应代码和文本:
ok_response_mock = MagicMock()
type(ok_response_mock).status_code = mock.PropertyMock(return_value=200)
ok_response_mock.text.return_value = "{'blah':'blah'}"
get_response = MagicMock()
get_response.return_value = ok_response_mock
但我不能让它工作。上述方法无法模拟resp.text
。你知道吗
您可以使用
Mock
对象来模拟get_response
,该对象返回一个Mock
对象,该对象的status_code
属性为200
,并且模拟JSON内容的text
属性:这将输出:
由于
Mock
对象的默认返回值是Mock
对象,因此您还可以像这样配置Mock
对象的return_value
属性,它也可以正常工作:相关问题 更多 >
编程相关推荐