【发布时间】:2023-03-05 08:17:01
【问题描述】:
我想测试一个将字符串写入标准输出的 void 类型方法。 为此,我和我的团队正在尝试将其输出与我们希望在调用该方法时看到的字符串/文本进行比较。
注意:我是 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);
}
这个测试背后的想法是将方法 printAdequateOption 的输出打印到 PrintStream 中,这样我就可以将其保存为字符串,从而将其与预期的输出参数进行比较。
【问题讨论】:
-
这似乎是您问题的正确答案:stackoverflow.com/questions/32241057/…
-
不错。你有问题吗?
-
是的,我想了解如何将 void 类型的方法与字符串进行比较
-
首先你要明白:这里不是编程学校,我们牵着你的手和你一起解决所有问题。你从一个问题开始“这个代码可以吗”;但是,哎呀,您的代码没有做它应该做的事情;现在提到简单的语法错误对您来说似乎是一个真正的大问题。我们无能为力所有。尽管如此,我会为你更新我的答案。但实际上:不要期望更多。
-
对不起,我的粗鲁,你有你的朋友支持这个问题吗?我不明白为什么独立的人会这样做。
标签: java unit-testing junit