JUnit を使用した System.out.println() のテスト
標準出力にエラー メッセージを書き込むアプリケーションの JUnit テストを作成するにはどうすればよいですか特に、これらのメッセージが一貫性がなく、信頼性が低い場合はどうでしょうか。これらのシナリオを効果的にテストするには、コンソール出力をキャプチャしてその内容をアサートする必要があります。
コンソール出力をリダイレクト
コンソール出力をキャプチャするには、両方の標準出力 (System.out) をリダイレクトする必要があります。 ) およびテスト中の標準エラー (System.err)。これは、ByteArrayOutputStream メソッドと System.setXXX メソッドを使用して実現できます。実装例を次に示します:
サンプル テスト ケース
コンソール出力をリダイレクトすると、期待される出力をアサートするテスト ケースを作成できます:
これらのテスト ケースは、システム出力が期待どおりであることをアサートし、アプリケーション ログが次と一致しているかどうかを検証できます。
注: この回答の以前のバージョンでは、テスト後に System.setOut(null) が使用されていたため、NullPointerExceptions が発生する可能性がありました。更新されたコードは、このような問題を回避するために、各テスト後に元のストリームを正しく復元します。
以上がJUnit で `System.out.println()` を単体テストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。