How to Mock Requests and Responses
Introduction
Unit testing in Python often involves mocking external dependencies to simulate real-world scenarios. Mocking allows us to control the behavior of these dependencies, providing greater stability and predictability to our tests. This article demonstrates how to mock Python's requests module and its responses to facilitate effective unit testing.
Step 1: Mocking Requests Module
To mock the requests module, utilize the mock module from the standard library:
import mock
Create a mock object for the requests module in the setup phase of the test method:
mockedRequests = mock.Mock()
Configure the mocked object to return specific responses for different URLs when the get() method is called:
mockedRequests.get.side_effect = [
# First URL: Return 'a response'
mock.Mock(status_code=200, text='a response'),
# Second URL: Return 'b response'
mock.Mock(status_code=200, text='b response'),
# Third URL: Return 'c response'
mock.Mock(status_code=200, text='c response')
]
Step 2: Calling the View
With the requests module mocked, call the function in the view that makes the requests:
res1 = mockedRequests.get('aurl')
res2 = mockedRequests.get('burl')
res3 = mockedRequests.get('curl')
Step 3: Verifying the Responses
Since the requests module is mocked, responses can be easily checked for the expected values:
self.assertEqual(res1.text, 'a response')
self.assertEqual(res2.text, 'b response')
self.assertEqual(res3.text, 'c response')
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3