我有几个方法我想使用Python requests
库进行单元测试。从本质上讲,他们正在做这样的事情:
def my_method_under_test(self):
r = requests.get("https://ec2.amazonaws.com/", params={'Action': 'GetConsoleOutput',
'InstanceId': 'i-123456'})
# do other stuffs
我基本上希望能够测试
问题在于,我希望能够在不实际提出请求的情况下对此进行测试,因为它会花费太长时间并且某些操作可能具有破坏性。
我如何快速轻松地模拟和测试?
答案 0 :(得分:9)
一个简单的模拟怎么样:
from mock import patch
from mymodule import my_method_under_test
class MyTest(TestCase):
def test_request_get(self):
with patch('requests.get') as patched_get:
my_method_under_test()
# Ensure patched get was called, called only once and with exactly these params.
patched_get.assert_called_once_with("https://ec2.amazonaws.com/", params={'Action': 'GetConsoleOutput', 'InstanceId': 'i-123456'})