Stringをstdoutに書き込むvoid型メソッドをテストしたいと考えています。 私のチームと私は、このメソッドを呼び出すときに期待されるString/textとその出力を比較しようとしています。JUnit Testing - void型メソッドのstdout出力と文字列の比較
注:私はJavaとStackOverflowの両方の初心者です。この方が良い方法があれば、それについて通知されることに感謝します。
public static boolean test_printAdequateOption(String txt, double[]
sol, Formatter out, String expectedOutput) {
//Obj.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
PrintStream sout = System.out;
System.setOut(ps);
printAdequateOption(txt, sol, out);
System.out.flush();
System.setOut(sout);
return baos.toString().equals(expectedOutput);
}
このテストの背後にある思想は、それは私が文字列として保存し、したがって、パラメータouputを期待し、それを比較することができますようにのPrintStreamのメソッドprintAdequateOptionの出力を印刷することです。
これはあなたの質問に対する適切な答えのようです:http://stackoverflow.com/questions/32241057/how-to-test-a-print-method-in-java-using-junit –
ニース。質問ありますか? –
はい、void型のメソッドと文字列を比較する方法を理解したい – user7350907