如何在urllib2上使用mock以避免外部调用并在read()时抛出异常?
我想在调用读取操作时抛出一个叫做 BadStatusLine
的错误。我该怎么用 mock 来实现这个呢?
1 个回答
1
我会像这样给 urllib2.open
赋值一个 mock
对象:
from mock import Mock
import urllib2
import httplib
mock = Mock()
mock.return_value.read.side_effect = httplib.BadStatusLine('Mocked error')
urllib2.open = mock
response = urllib2.open()
response.read()
注意:
return_value
用来获取open()
返回的 mock 对象side_effect
用来在执行read()
时抛出想要的异常