ホームページ >Java >&#&チュートリアル >JUnit でコンソール出力をテストするにはどうすればよいですか?
JUnit でのコンソール出力のテスト
設計が不十分なレガシー アプリケーションをテストする場合、標準出力にエラー メッセージを書き込むコードが発生する可能性があります。 JUnit でこのようなコンソール出力をアサートするには、出力をリダイレクトしてキャプチャする方法が必要です。
コンソール出力のリダイレクト
コンソール出力を送信するように Java システムを構成できます。指定されたストリームに送信します。このメカニズムを利用して、出力をキャプチャしてテストできます。
ByteArrayOutputStream による出力のキャプチャ
ByteArrayOutputStream を使用して、コンソール出力をキャプチャできます。これを行うには、標準出力ストリームを ByteArrayOutputStream に書き込む新しいストリームに置き換えます。
例:
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); private final ByteArrayOutputStream errContent = new ByteArrayOutputStream(); private final PrintStream originalOut = System.out; private final PrintStream originalErr = System.err; @Before public void setUpStreams() { System.setOut(new PrintStream(outContent)); System.setErr(new PrintStream(errContent)); } @After public void restoreStreams() { System.setOut(originalOut); System.setErr(originalErr); }
コンソール出力のテスト
出力がキャプチャされたら、JUnit のメソッドを使用してその内容をアサートできます。 assertEquals() メソッド。
テスト ケースの例:
@Test public void out() { System.out.print("hello"); assertEquals("hello", outContent.toString()); } @Test public void err() { System.err.print("hello again"); assertEquals("hello again", errContent.toString()); }
結論
コンソール出力を ByteArrayOutputStreams にリダイレクトし、 System.setXXX() を使用してシステム ストリームを構成すると、コンソールを効果的にテストしてアサートできます。 JUnit テストの出力。
以上がJUnit でコンソール出力をテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。