- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现 requests_mock
用作 pytest
的 fixture 适用于所有请求,即使它们未设置也是如此。
我不确定这是 requests_mock
/pytest
错误还是我遗漏了什么。最终,我不需要模拟“api-b”调用,但我找不到如何避免它。
def test_reqs(requests_mock):
requests_mock.get('https://api-a.com/')
requests.get('https://api-b.com/')
assert requests.get('https://api-a.com/')
我正在使用 pytest
、requests-mock
和 pytest-mock
为 API 端点编写集成测试。在幕后,此端点多次调用我需要模拟的不同第三方 API。
requests_mock
可以模拟其中一些调用。但其中一些不能,因为他们从第三方模块内部进行调用。
我尝试用pytest-mock
模拟最后一个,发现基本不行。requests_mock
仍在尝试模拟该调用并抛出下一个错误:requests_mock.exceptions.NoMockAddress: 没有模拟地址:GET https://api-b.com/
最佳答案
作为requests-mock
doc说,您可以通过在启动 requests_mock.Mocker()
时设置 real_http=True
来实现此行为。
with requests_mock.Mocker(real_http=True) as m:
m.get('http://test.com', text='resp')
requests.get('http://test.com').text
但没有说明如何将它与 pytest
一起使用。由于 pytest
测试接收 request_mock 对象作为参数( fixture ),您可以在测试中显式设置它。
def test_reqs(requests_mock):
requests_mock.real_http = True
requests_mock.get('https://api-a.com/')
requests.get('https://google.com/')
assert requests.get('https://api-a.com/')
关于python - `requests_mock` 适用于所有请求,即使它们未设置并抛出 NoMockAddress 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64750259/
我目前正在尝试使用 requests_mock 库进行单元测试以修补请求。 我编写了以下代码: def test_general_search(requests_mock): params =
我发现 requests_mock 用作 pytest 的 fixture 适用于所有请求,即使它们未设置也是如此。 我不确定这是 requests_mock/pytest 错误还是我遗漏了什么。最终
我发现 requests_mock 用作 pytest 的 fixture 适用于所有请求,即使它们未设置也是如此。 我不确定这是 requests_mock/pytest 错误还是我遗漏了什么。最终
我是一名优秀的程序员,十分优秀!