我的代码如下:
import pytest
import requests
from unittest import mock
@mock.patch('requests.get')
def test_verify(mock_request):
mock_resp = mock.Mock()
mock_resp.status_code = 404
mock_request.return_value = mock_resp
r = requests.get()
with pytest.raises(requests.exceptions.HTTPError) as err_msg:
r.raise_for_status()
print(err_msg)
Run Code Online (Sandbox Code Playgroud)
由于响应的状态代码设置为 404,我预计会引发 HTTPError。但是,有一个错误说明
Failed: DID NOT RAISE <class 'requests.exceptions.HTTPError'>
Run Code Online (Sandbox Code Playgroud)
输出如下:
======================================== 测试会话开始====== ================================== 平台达尔文 -- Python 3.6.4, pytest-3.7.0, py- 1.5.2, pluggy-0.7.1 rootdir: /Users/michael/Code/youtube-data-api, inifile: plugins: requests-mock-1.5.2 收集了1个项目
temp_test.py F
[100%]==============================================失败==== ======================================================================
模拟请求 =
Run Code Online (Sandbox Code Playgroud)@mock.patch('requests.get') def test_verify(mock_request): mock_resp = mock.Mock() mock_resp.status_code = 404 mock_request.return_value = mock_resp r = requests.get() #print(r.status_code) …