単体テストの方法がわからないコードがあります。このモジュールは、urllib2を使用して外部XMLフィード(twitter、flickr、youtubeなど)からコンテンツをプルします。これがそのためのいくつかの擬似コードです:
params = (url, urlencode(data),) if data else (url,)
req = Request(*params)
response = urlopen(req)
#check headers, content-length, etc...
#parse the response XML with lxml...
私の最初の考えは、応答をピクルスにしてテスト用にロードすることでしたが、どうやらurllibの応答オブジェクトはシリアル化できません(例外が発生します)。
私のコードはヘッダー情報も使用しているため、応答本文からXMLを保存するだけでは理想的ではありません。応答オブジェクトに作用するように設計されています。
そしてもちろん、単体テストでデータを外部ソースに依存することは恐ろしい考えです。
では、このための単体テストを作成するにはどうすればよいですか?