2 つの異なるサービス (CKAN と MediaWiki) からデータを取得するために 2 つの異なる API で動作するプログラムを Python で作成しました。特に、上記のサービスからデータを要求して処理する Resource クラスがあります。
ある時点で、アプリのテストが必要であるという結論に達しました。そして問題は、私がウェブや本で見つけたすべての例がそのようなケースを扱っていないことです.
たとえば、 Resource クラス内に次のメソッドがあります。
def load_from_ckan(self):
"""
Get the resource
specified by self.id
from config.ckan_api_url
"""
data = json.dumps({'id': self.id})
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
url = config.ckan_api_url + '/action/resource_show'
r = requests.post(url, timeout=config.ckan_request_timeout, data=data, headers=headers)
assert r.ok, r
resource = json.loads(r.content)
resource = resource["result"]
for key in resource:
setattr(self, key, resource[key])
load_from_ckan メソッドは、CKAN API からリソースに関するデータを取得し、それをオブジェクトに割り当てます。シンプルですが...
私の質問は次のとおりです。このようなメソッドをテストする方法は? または、ここで何をテストする必要がありますか?
結果をHDDにピクル(保存)する可能性を考えました。次に、テストでそれをロードし、load_from_ckan() で初期化されたオブジェクトと比較できます。しかし、CKAN はコミュニティ主導のプラットフォームであり、そのようなテストの動作は予測できません。
自動テストの哲学 (何をテストし、何をテストしないか、テストを意味のあるものにする方法など) に関する本があれば、リンクを教えてください。