我正在尝试为 System.out 编写 junit 测试,尤其是 system.out.println,但即使在阅读了相关帖子后,我也无法找到解决方案。
public static void hello(){
System.out.println("Hello");
}
@Test void Test(){
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));
hello();
assertEquals("Hello\n" , outContent.toString());
System.setIn(System.in);
System.setOut(originalOut);
System.setErr(originalErr);
}
当我使用 print 而不是 println 并从 assertEquals 中删除 \n 时,它工作得很好,但是每当我尝试使用 println 时,测试都会失败
expected: <Hello
> but was: <Hello
>
org.opentest4j.AssertionFailedError: expected: <Hello
> but was: <Hello
>
甚至错误消息看起来都一样。有什么方法可以使用 println 并通过测试吗?谢谢
幕布斯6054654
相关分类