我正在進入python測試,我問自己如何測試這種方法。如何測試使用哪個函數通過urllib2檢索數據?
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()
測試網址和一些測試參數,它存在於現實世界中,並檢查response.read()
是否返回預期數據。但不知何故,我覺得,這不是它應該完成的方式。有什麼建議麼?我會很感激在發短信的情況下如何處理這種情況的建議。
首先,定義方法應遵守的合同。該文章概述了測試*接受的響應*,但現在應該如何處理失敗。然而,測試實際的* data *聽起來更像是一個集成測試。 – 2011-07-15 21:06:38
看看(BSD許可的)scikit-learn代碼,完全可以做到這一點; [testcases](https://github.com/scikit-learn/scikit-learn/blob/master/scikits/learn/datasets/tests/test_mldata.py),['mock_urllib2'](https://github.com /scikit-learn/scikit-learn/blob/master/scikits/learn/utils/testing.py#L55)。 –