13

タイトルはそれをほぼ要約しています。assertEqualを使用してジェネレーターオブジェクトを返す関数をテストしようとしましたが、結果は次のようになります。

AssertionError:ジェネレータオブジェクトgenexpr> at 0x2e70c80>!=(1,2、...)

関数を繰り返し処理し、個々の出力ごとにassertEqualを実行する以外に、これを行うための賢い方法はありますか?

4

2 に答える 2

17
assertEqual(tuple(generator_object), (1, 2, ...))

nそれが無限のジェネレーターである場合、または何らかの理由で最初の結果を見たいだけの場合は、これをと組み合わせることができますitertools.islice

assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))
于 2012-10-08T05:34:35.273 に答える
-1

next()ジェネレータオブジェクトで使用します。

assertEqual(next(generator_object), (1, 2, ...))
于 2016-12-12T00:00:19.077 に答える