繁体   English   中英

如何使用`httpretty`模拟请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM