2012-06-20 7 views
14

は、あなたはそのような機能のためのunittest -casesを書きたいです。しかし、このようなループは、状況に応じてバッファー文字列が非常に大きくなる可能性があるため、常に便利なわけではありません。では、出力がテストされ、出力され、返されないときは、どうすればよいですか?印刷文をテストするには?私は一緒に全体の出力を印刷し、テストするために、単なる文字列で<code>do_something</code>の出力を収集し、それを返すことについて考え最初は</p> <pre><code>def test_me(a): for b in c: print do_something(a,b) </code></pre> <p>:

+1

これは役に立ちますか? http://stackoverflow.com/questions/5136611/capture-stdout-from-a-script-in-python –

+1

'yield'ステートメントを使用しますか? –

+0

@both comments above:私は単体テストの典型的なアプローチが何であるかは分かりませんが、どちらも可能かもしれません。 – erikbwork

答えて

12

printsys.stdoutに印刷します。希望する場合は、自分のオブジェクトに割り当てることができます。オブジェクトに必要なのは、単一の文字列引数をとるwrite関数です。

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

関連する問題

 関連する問題