初次使用mock。在Python2.7.13上。在
我的测试代码看起来像class TestSendgridUtils(unittest.TestCase):
def setUp(self):
self.sgsu = SubUser(api_key=RANDOM_API_KEY, hippo_user=RANDOM_USER_OBJ)
@patch('sendgrid.SendGridAPIClient')
@patch('python_http_client.Client')
def test_create(self, sgc_mock, http_client_mock):
self.sgsu.create()
expected_data = {
'email' : self.sgsu.sg_username
}
print http_client_mock.call_list()
sgc_mock.client.assert_called_with(request_body=expected_data)
我基本上是在模仿发出HTTP调用的底层库。我的测试只是为了确保将正确的参数传递给sendgrid模块。在
现在,如果我运行测试,HTTP请求仍在进行,这意味着我没有成功地模拟预期的库。在
通过阅读模拟文档,我了解到只有在实例化底层类的情况下,补丁才起作用。但这必须在setUp()中,这意味着我的模拟在我的测试用例中不可用?在
因此,我无法确定在这个实例中如何使用mock的最佳实践是什么。
我也不知道我是否可以嘲笑sendgrid.SendGridAPIClient或者如果我需要模仿python_客户。客户'