我正在编写一些单元测试代码,我想要模拟在我的函数内部使用的
requests
模块。import requests
def get_employee(id):
resp = requests.get(f'{__BASE_URL}/employee/{id}')
if resp.status_code == 404:
return None
return resp.json()
我已经尝试使用这段代码进行模拟:
def test_get_employee(mocker):
get_request_mock = mocker.patch.object(get_employee, "resp")
print(get_request_mock)
get_request_mock.status_code = 200
get_request_mock.json.return_value = {'name': 'awesome-mock'}
resp = get_employee('random-id')
assert resp == {'name': 'awesome-mock'}
如何使用 mocker 模拟请求?这是可能的吗?
get_employee(id)
中的行requests.get(f'{__BASE_URL}/employee/{id}')
? - user866364status=404
作为get
函数的参数添加即可。 - ndcltfrom correct.package import __BASE_URL
是指你的项目包,其中包含了你尝试模拟的资源的基本URL。我猜它可能在配置模块中找到。 - Cuthbeorht