簡體   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