问题描述
如何使用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 (将#修改为@)