ホームページ > Java > &#&チュートリアル > JUnit は「System.out.println()」出力を効果的にテストするにはどうすればよいでしょうか?

JUnit は「System.out.println()」出力を効果的にテストするにはどうすればよいでしょうか?

Linda Hamilton
リリース: 2024-12-28 16:17:54
オリジナル
169 人が閲覧しました

How Can JUnit Effectively Test `System.out.println()` Output?

System.out.println() 出力の JUnit テスト

レガシー アプリケーションでは、標準エラー メッセージのみに依存すると、トラブルシューティングが困難になる可能性がありますコンソールに出力されます。これを軽減するために、JUnit はコンソール出力をキャプチャおよびアサートするメソッドを提供します。

System.out.println() 出力をテストするには、次のアプローチを検討してください。

  1. 出力キャプチャの初期化:

    • ByteArrayOutputStream の作成オブジェクト (outContent や errContent など) を使用して、出力ストリームとエラー ストリームを保存します。
    • System.setOut(new PrintStream(outContent)) および System.setErr(new PrintStream(errContent)) を使用して、コンソール ストリームをこれらのオブジェクトにリダイレクトします。 .
  2. 実行テスト:

    • テスト メソッドで System.out.println(output) または System.out.print(output) を呼び出して、意図した出力をキャプチャします。
  3. アサート出力:

    • assertEquals(expected,actual) メソッドを使用して、キャプチャされた出力 (outContent または errContent) を期待される出力と比較します。

テスト例ケース:

@Test
public void testOut() {
    System.out.print("hello");
    assertEquals("hello", outContent.toString());
}

@Test
public void testErr() {
    System.err.print("error occurred");
    assertEquals("error occurred", errContent.toString());
}
ログイン後にコピー

注: originalOut とoriginalErr を使用する各テストの後に、System.setOut() と System.setErr() の呼び出しが元に戻っていることを確認してください。これを行わないと、後続のテスト中に NullPointerExceptions が発生する可能性があります。

以上がJUnit は「System.out.println()」出力を効果的にテストするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート