繁体   English   中英

用于System.out.println / System.err.println的JUnit测试

[英]JUnit test for System.out.println/System.err.println

我必须为应用程序编写测试,而林正试图为打印在控制台上的东西编写虚拟测试。 该应用程序具有->

System.err.println("Username cannot be empty");

到目前为止,这是我所做的:

ByteArrayOutputStream errContent = new ByteArrayOutputStream();
System.setErr(new PrintStream(errContent));
//left username empty and pressed login
assertEquals("Username cannot be empty", errContent.toString());

但是我得到了ComparisonFailure

expected <Username cannot be empty[]> 
but was <Username cannot be empty[
]>

//difference of next line. 

有人知道如何解决这个问题吗? 谢谢。

编辑:尝试assertEquals("Username cannot be empty\\n", errContent.toString());

现在我得到:

expected <Username cannot be empty[]
> 
but was <Username cannot be empty[
]
>

您在测试中缺少的是, System.err.println()在末尾有换行符。 更改assertEquals("Username cannot be empty", errContent.toString()); assertEquals("Username cannot be empty"+System.getProperty("line.separator"), errContent.toString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM