私は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()
にテストURLといくつかのテストパラメータを渡すことを考えました。これは現実世界に存在し、response.read()
が期待されるデータを返すかどうかをチェックするものです。しかし、どういうわけか、私はそれが行われるべき方法ではない、と感じます。助言がありますか?私は、テキストメッセージのコンテキストでそのようなケースを処理する方法の提案を感謝します。
まず、メソッドが従うべき契約を定義します。この記事は、受け入れられたレスポンス*をテストしていますが、ここでどのように失敗を処理するべきかを概説しています。しかし、実際の* data *をテストすることは、より多くの統合テストのように思えます。 –
これを正確に行う(BSDライセンスを取得した)scikit-learnコードを見てみましょう。 [テストケース](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)。 –