【发布时间】:2012-01-21 03:22:14
【问题描述】:
我将 Python 2.6.5 与 Mock 0.7.2 一起使用,并进行了单元测试,其中我将补丁装饰器用于类。
@patch('urllib2.Request')
def test_do_my_call(self, MockClass):
"""will test that _do_my_call is getting called with correct values"""
instance = MockClass.return_value
mock_urlopen = Mock()
mock_urlopen.return_value = 'foo'
urllib2.urlopen = mock_urlopen
response = do_something('MyData')
self.assertEqual(mock_urlopen.call_count, 1)
self.assertEqual(response, 'foo')
上面的代码通过了,它验证了 urlopen 至少被调用了,但是看起来还是有点弱。
“do_something”方法创建一个新请求(因此需要补丁),然后用它调用 urlopen(如上所述,我验证它是否被调用)。但是,我想知道是否有一种方法可以测试从“do_something”中传递给 urllib2.Request() 的参数。例如,do_something 是否传递了正确/预期的 url 和正确/预期的标头?
这可能吗?
【问题讨论】:
标签: python unit-testing mocking