Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用对另一台服务器的远程调用对Django进行单元测试_Django_Unit Testing_Django Testing - Fatal编程技术网

使用对另一台服务器的远程调用对Django进行单元测试

使用对另一台服务器的远程调用对Django进行单元测试,django,unit-testing,django-testing,Django,Unit Testing,Django Testing,因此,我有一个Django应用程序,作为其功能的一部分,它向另一台服务器发出请求(使用模块)。我想做的是让一个服务器可用于单元测试,它为我提供对来自Django应用程序的测试请求的固定响应(允许测试Django如何处理不同的潜在响应) 代码的一个例子是: payload = {'access_key': key, 'username': name} response = requests.get(downstream_url, params=payload) # Handl

因此,我有一个Django应用程序,作为其功能的一部分,它向另一台服务器发出请求(使用模块)。我想做的是让一个服务器可用于单元测试,它为我提供对来自Django应用程序的测试请求的固定响应(允许测试Django如何处理不同的潜在响应)

代码的一个例子是:

payload = {'access_key': key,
          'username': name}
response = requests.get(downstream_url, params=payload)

# Handle response here ...

我已经读到,你可以用它来完成这一点,但我不知道我如何使用它达到这一目的,任何想法将不胜感激

使用
mock
模块

from mock import patch, MagicMock

@patch('your.module.requests')
def test_something(self, requests_mock):
    response = MagicMock()
    response.json.return_value = {'key': 'value'}
    requests_mock.get.return_value = response
    … 
    requests_mock.get.assert_called_once_with(…)
    response.json.assert_called_once()
还有更多的例子

您不需要(而且不应该)测试发出请求的代码。您希望模拟该部分,并将重点放在测试处理响应的逻辑上