如何解决如何在python中使用pytest和嘲笑为使用http客户端库的函数创建单元测试?
如何使用pytest模拟测试以下功能?
import http.client
def get_response(req_type,host,sub_domain,payload=None,headers=None,body=None):
conn = http.client.HTTPSConnection(host)
conn.request(req_type,headers=headers,body=payload)
response = conn.getresponse()
if response.status != 200:
raise Exception('invalid http status ' + str(response.status)
+ ',detail body:' + response.read().decode("utf-8"))
data = response.read().decode("utf-8")
conn.close()
return data
通过使用pytest_mock库并参考代码here,我能够对使用get_response()
执行某些操作的其他功能进行单元测试。因此,如果我们甚至需要使用pytest_mock库为get_response
话虽如此,到目前为止,我所看到的解决方案都是针对requests
和unittest
库的。
我想避免在基于模拟的单元测试中创建http服务器或flask服务器。
Pytest documentation似乎建议我需要一个http.client.HTTPSConnection
,conn.request()
和conn.getresponse()
的补丁程序来对get_response()
进行单元测试。是这样吗?
一个最小的工作示例会有所帮助。预先感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。