いくつかのテストケースがあります。テストケースは、計算に時間がかかるデータに依存しています。テストを高速化するために、データをキャッシュして、再計算する必要がないようにしました。
foo()
キャッシュされたデータを調べるがあります。テストケースに大きく依存するため、何が表示されるかを事前に知ることはできません。
テストケースが失敗した場合、適切なキャッシュデータが見つからないため、失敗したくありません。データを計算してから再試行します。また、特にどの例外がデータの欠落の原因となるのかもわかりません。
私のコードは今次のようになっています:
if cacheExists:
loadCache()
dataComputed = False
else:
calculateData()
dataComputed = True
try:
foo()
except:
if not dataComputed:
calculateData()
dataComputed = True
try:
foo()
except:
#error handling code
else:
#the same error handling code
このコードを再構築するための最良の方法は何ですか?