簡體   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