タイトルはそれをほぼ要約しています。assertEqualを使用してジェネレーターオブジェクトを返す関数をテストしようとしましたが、結果は次のようになります。
AssertionError:ジェネレータオブジェクトgenexpr> at 0x2e70c80>!=(1,2、...)
関数を繰り返し処理し、個々の出力ごとにassertEqualを実行する以外に、これを行うための賢い方法はありますか?
タイトルはそれをほぼ要約しています。assertEqualを使用してジェネレーターオブジェクトを返す関数をテストしようとしましたが、結果は次のようになります。
AssertionError:ジェネレータオブジェクトgenexpr> at 0x2e70c80>!=(1,2、...)
関数を繰り返し処理し、個々の出力ごとにassertEqualを実行する以外に、これを行うための賢い方法はありますか?
assertEqual(tuple(generator_object), (1, 2, ...))
n
それが無限のジェネレーターである場合、または何らかの理由で最初の結果を見たいだけの場合は、これをと組み合わせることができますitertools.islice
assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))
next()
ジェネレータオブジェクトで使用します。
assertEqual(next(generator_object), (1, 2, ...))