Lio*_*han 18 python https requests-mock
我目前正在尝试使用 requests_mock 库进行单元测试,以便修补请求。我编写了以下代码:
def test_general_search(requests_mock):
params = {'query': 'testsetset', 'exact': 0, 'max_pages': '1', 'category': 'username'}
requests_mock.get(f'{MOCK_ADDRESS}', json=MOCK_RESPONSE)
client = Client(MOCK_ADDRESS, auth=MOCK_CREDS, headers=MOCK_HEADERS)
res = general_search(client, params)
assert ...
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
requests_mock.exceptions.NoMockAddress: No mock address: GET https://fake-url.com/search?query=username%3Atestsetset&page=1
Run Code Online (Sandbox Code Playgroud)
谁能帮我弄清楚如何解决它?我使用模拟作为 pytest 功能。
Mic*_*ael 12
当有关模拟请求的事情发生时,就会发生这种情况
在这种情况下
requests_mock.get(f'{MOCK_ADDRESS}', json=MOCK_RESPONSE)
Run Code Online (Sandbox Code Playgroud)
与正在测试的代码的 get 请求不完全匹配。所以我想说你需要打印出测试类中的 URL 和测试代码中的 URL。
例如,我遇到了同样的错误,直到我做了类似的事情
@requests_mock.Mocker(kw='mock')
def test_get_data_from_endpoints(self, **kwargs):
kwargs['mock'].get('http://testurl.org', json=response_1)
Run Code Online (Sandbox Code Playgroud)
更多信息在这里:https://requests-mock.readthedocs.io/en/latest/matching.html#query-strings
| 归档时间: |
|
| 查看次数: |
14113 次 |
| 最近记录: |