25

unittestそのような関数の -casesを書きたいとします:

def test_me(a):
    for b in c:
        print do_something(a,b)

最初は、 の出力をdo_something文字列に集めてから返し、出力全体を一緒に印刷してテストすることを考えました。しかし、状況によっては、このようなループによりバッファ文字列が非常に大きくなる可能性があるため、必ずしも便利ではありません。では、印刷されて返されない場合、出力をテストするにはどうすればよいでしょうか?

4

2 に答える 2

13

print必要sys.stdoutに応じて独自のオブジェクトに再割り当てできます。オブジェクトに必要なのはwrite、単一の文字列引数を取る関数だけです。

Python 2.6 以降、スクリプトの先頭に をprint追加することで、言語構造ではなく関数に変更することもできます。このようにして、独自の関数でfrom __future__ import print_functionオーバーライドできます。print

于 2012-06-20T15:18:29.150 に答える