[英]How to use `httpretty` to mock out request
这是我尝试编写的测试:
import httpretty
import requests
@httpretty.activate
def test():
httpretty.register_uri(
httpretty.GET,
"http://localhost:8000",
body='{"origin": "127.0.0.1"}',
status=200
)
requests.get("http://localhost:8000")
但是,当我使用pytest
运行它时,我得到了
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))
查看文档,我以为我已经逐字逐句地遵循了它-有什么建议吗?
问题中代码块的具体问题是,在指定端口时,httpretty 需要您在对register_uri
的调用中的 url 中包含尾部斜杠。 在register_uri 的文档中实际上有一个警告,但它仍然让我觉得这是一个缺失的楼梯。
因此,您的基本示例工作所需的代码是:
httpretty.register_uri(
httpretty.GET,
"http://localhost:8000/",
body='{"origin": "127.0.0.1"}',
status=200
)
我发现了这个技巧,也遇到了我自己的问题,这似乎表明,当涉及到斜杠时,指定端口可能不是唯一起作用的因素。
我最终切换到响应库,无论如何,它似乎与 pytest 装置相处得更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.