1

重複の可能性:
System.out.println() の JUnit テスト

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

4

2 に答える 2

3

はい、できます。デフォルトの System.out をファイルやバッファなどに変更し、期待されるデータの新しいストリームを単体テストできます。しかし、IMO はひどいひどい考えです。

他のアプローチは、標準出力の代わりにロガーを使用し、ログを単体テストしますが、ロガーの単体テストは奇妙に聞こえます。少なくとも、ロギング ツールを開発していない場合:)

単体テストとは何かをよく理解していないように思えますが、間違っている可能性があります。

于 2012-05-12T06:25:44.083 に答える
0

System.out を直接使用しないようにして、アプリケーションをよりテストしやすいように変更することをお勧めします。

  • テストしようとしているメソッドがエンド ユーザー向けに出力を書き込むように設計されている場合は、そのメソッドまたは外側のクラスを変更して、出力先の OutputStream または PrintWriter などをパラメーターにします。

  • 一方、メソッドがログ出力を生成している場合は、適切なロギング フレームワークを使用し、ログ出力を単体テストする価値があるかどうかを検討してください。

于 2012-05-12T06:45:41.723 に答える