Python 单元测试中的Mock response.text
我正试图从API获得以下代码的响应。我得到结果并将其打印为Python 单元测试中的Mock response.text,python,unit-testing,Python,Unit Testing,我正试图从API获得以下代码的响应。我得到结果并将其打印为response.text。同样,我尝试编写单元测试。我能够用JSON内容模拟API响应。但在运行单元测试时,我得到如下错误 AttributeError: 'dict' object has no attribute 'text' 代码: 已尝试的单元测试代码: from get_api import get_call from mock import patch import os import sys import json te
response.text
。同样,我尝试编写单元测试。我能够用JSON内容模拟API响应。但在运行单元测试时,我得到如下错误
AttributeError: 'dict' object has no attribute 'text'
代码:
已尝试的单元测试代码:
from get_api import get_call
from mock import patch
import os
import sys
import json
testdir = os.path.dirname(__file__)
sys.path.insert(0, os.path.abspath(os.path.join(testdir)))
resp = {
"success": True,
"message": "Data exist",
"data": []
}
response = json.dumps(resp)
newresponse = json.loads(response)
@patch('get_api.requests.get')
def test_get_call(get):
get.side_effect = [newresponse]
get_call()
您正在模拟
请求。get
生成dict
,而不是text
属性是dict
的JSON编码的对象
get.return_value.text = response
您没有显示测试,因此不可能说出它有什么问题,除此之外,您的模拟将返回一个元组,而不是真实的或测试加倍响应对象。打个招呼。不管它值多少钱,我在过去已经用过这种方法了。@jornsharpe我已经包含了经过测试的单元测试代码
get.return_value.text = response