下面是我尝试编写的一个测试:
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 fixture相处得更好。