我需要测试一个需要使用 urllib.urlopen (它也使用 urllib.urlencode)查询外部服务器上的页面的函数。服务器可能宕机,页面可能发生变化;我不能依赖它进行测试。
控制 urllib.urlopen 返回内容的最佳方法是什么?
另一种简单的方法是让你的测试覆盖 urllib 的urlopen()
功能。例如,如果您的模块有
import urllib
def some_function_that_uses_urllib():
...
urllib.urlopen()
...
您可以这样定义您的测试:
import mymodule
def dummy_urlopen(url):
...
mymodule.urllib.urlopen = dummy_urlopen
然后,当您的测试调用函数时mymodule
, dummy_urlopen()
将被调用而不是真正的urlopen()
。像 Python 这样的动态语言可以非常轻松地删除方法和类以进行测试。
请参阅我的博客文章http://softwarecorner.wordpress.com/ http://softwarecorner.wordpress.com/有关删除测试依赖项的更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)