Another simple approach is to have your test override urllib's urlopen()
function. For example, if your module has
import urllib
def some_function_that_uses_urllib():
...
urllib.urlopen()
...
You could define your test like this:
import mymodule
def dummy_urlopen(url):
...
mymodule.urllib.urlopen = dummy_urlopen
Then, when your tests invoke functions in mymodule
, dummy_urlopen()
will be called instead of the real urlopen()
. Dynamic languages like Python make it super easy to stub out methods and classes for testing.
See my blog posts at http://softwarecorner.wordpress.com/ for more information about stubbing out dependencies for tests.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…