2012-05-12 7 views
1

可能性の重複:
JUnit test for System.out.println()は、メソッドのSystem.out.printlnを(チェックすることが可能である)

場合、JUnitテストを通じて、確認することは可能ですメソッドSystem.out.println( "One、Two")は、実際にOne、Twoを出力しますか?

+3

のは、ものを行うだろうとhttp://stackoverflow.com/questions/1119385/junit-test-for-system-out-println –

+0

@bunting見るが、私はそれだけでaproachをお勧めしますし、あなただけの場合ですコードをリファクタリングすることはできません。新しいコードをテストしている場合、これはコード臭のように見えます。 – rsan

+0

あなたはJavaのコアライブラリメソッドをテストしたいですか?どうして? –

答えて

0

良いアイデアは、直接のSystem.outを使用しないことにより、より多くのテストが可能であるためにあなたのアプリケーションを変更することです。

  • あなたがテストしようとしている方法は、先のOutputStreamまたはPrintWriterのか、何がパラメータになるように、エンドユーザーのために出力を書き込み、それを変更したり、囲むクラスに設計されている場合。一方

  • 、方法が適切なロギングフレームワークを使用して、ログ出力を生成している場合は...そしてそれがすべてでログ出力ユニットテストに価値があるかどうかを検討してください。

3

はいあなたは、あなたが期待されるデータのための新しいストリームことなどのファイルへのデフォルトのSystem.out、バッファを変更し、ユニットテストができたことができます。しかし、IMOはひどいひどい考えです。

その他aproachは、標準出力とユニットは、ログをテストする代わりにロガーを使用することwoudが、再び、それはロガーをテスト奇妙なユニットが鳴ります。あなたは私に、ロギングツール:)

を開発していない場合は、少なくともそれは、ユニットのtestigが何であるかの悪い理解のように聞こえるが、私は間違っている可能性があります。

+0

私はユニットテストが何であるかを理解しない、と私は簡単に、配列、リスト、またはテストが容易になり、コンテナの任意の種類にするSystem.out.printlnを変換することができます。メソッド自体がテストできるのであれば、放浪しているだけです。 – FranXh

関連する問題