JUnitでSystem.out.println()をテスト
処理結果がSystem.outされるメソッドをテストするにはどうしたらよいでしょうか。出力された結果の目視確認ではJUnitでの自動テストにはなりません。そんなときは、下記のようにテストケースを実装すると良いと思います。
private final ByteArrayOutputStream out = new ByteArrayOutputStream(); @Before public void before() { System.setOut(out); } @After public void after() { System.setOut(null); } @Test public void testCalc() { Calc calc = new Calc(); calc.add(1, 3); // 1 + 3 の結果をSystem.outしているメソッド Assert.assertThat(out.toString(), Is.is("4")); }
このように実装することにより、System.outされた結果を検証することができます。