【发布时间】:2011-07-15 20:49:38
【问题描述】:
我开始在 python 中进行测试,我问自己如何测试这个方法。
def get_response(self, url, params):
encoded_params = urllib.urlencode(params)
request = urllib2.Request(BASE_URL, headers=HEADERS)
response = urllib2.urlopen(request, encoded_params)
return response
使用 doctest 或 unittest,如何最好地实现这一点?我想通过 get_response() 一个测试 url 和一些测试参数,它们存在于现实世界中,并检查 response.read() 是否返回预期的数据。但不知何故,我觉得,这不是应该做的方式。有什么建议么?我将不胜感激有关如何在发短信的情况下处理此类情况的建议。
【问题讨论】:
-
首先,定义方法应该遵守的契约。这篇文章概述了测试接受的响应,但现在应该如何处理失败。然而,测试实际的数据听起来更像是一种集成测试。
-
看看(BSD 许可的)scikit-learn 代码就是这样做的; testcases,
mock_urllib2.
标签: python unit-testing urllib2 doctest