2
我有课,要求请求的方法使用GETATTR这样的:如何使用GETATTR嘲笑请求方法动态调用
import requests
class CustomRequests(object):
def __init__(self):
pass
def _do_requests(self, method='GET', url='', expected_status=200):
make_request = getattr(requests, method.lower())
url = url if url else 'http://example.com'
try:
response = make_request(method, url=url)
except response.exceptions.RequestException as exception:
raise exception
if response.status_code != expected_status:
raise ValueError
def get(self, *args, **kwargs):
self._do_requests(method='GET', *args, **kwargs)
我试图用模拟测试API和响应LIB是这样的:
import responses
@responses.activate
def test_get_method(self):
responses.add('GET', url='http://test_this_api.com', status=200)
custom_request = CustomRequest()
response_data = custom_request.get(method='GET')
AssertIsNotNone(response_data)
有没有更好的或正确的方法来测试这种方法。 收到此错误:
message = message.format(**values)
KeyError: 'method'
谢谢@ThisSuitIsBlackNot。感谢“另:”下的所有要点。我只是编写了那些Try/Except,因为无法找到更好的示例来编写。在我的代码中,我完全按照你指出的做同样的事情。让我试用一下,如果这样做,而我嘲笑使用响应的请求。 –
谢谢!有效!! –
@SunilKapil太棒了!乐意效劳。 – ThisSuitIsBlackNot