URL から読み取り、ストリームを処理し、結果を属性として保持する Thread クラスを作成しました。単体テストでは、URL の代わりに「rb」ファイルがオブジェクトに渡されます。
クラスをリファクタリングして、キューを持つプロセスにしました。プログラムを通常どおり実行すると期待どおりの結果が得られますが、単体テストでは「壊れたパイプ」エラーが発生します。
問題は、どのテストが失敗しているかがわからないことです。そのため、実際にデバッグを開始することさえできません。
def testThread(self):
f = open('TestFiles/test.html', 'rb')
q = Queue() #One individual queue for each individual process
myclass = MyClass(q, f)
myclass.start()
myclass.join()
value = myclass.get_data()
q.close()
self.assertEqual(0.7628, value, value)
注: ファイルは run() メソッド内で閉じられます。