JUnit 断言两个字符串是否相等
JUnit asserting two Strings whether they're equal or not
所以我查阅了 this question 并尝试了,但没有成功。
我的代码应该通过使用 Streams
.
回读来测试该方法是否正确地将文本输出到控制台
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
PrintStream myStream = new PrintStream(outStream);
System.setOut(myStream);
o.doSomething(); //printing out Hi
System.out.flush();
System.setOut(savedOldStream);//setting it back to System.out
assertEquals(outStream.toString(),"Hi");
但每次我 运行 JUnit 都会失败。
我也试过:assertTrue(outStream.toString().equals("Hi"));
但这也没有用。
这是 doSomething() 方法:
public void doSomething () {
System.out.println("Hi");
}
PrintStream#println(String str)
在字符串末尾附加一个换行符。因此,您的断言应该 trim 添加一行:
assertEquals(outStream.toString().trim(),"Hi");
所以我查阅了 this question 并尝试了,但没有成功。
我的代码应该通过使用 Streams
.
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
PrintStream myStream = new PrintStream(outStream);
System.setOut(myStream);
o.doSomething(); //printing out Hi
System.out.flush();
System.setOut(savedOldStream);//setting it back to System.out
assertEquals(outStream.toString(),"Hi");
但每次我 运行 JUnit 都会失败。
我也试过:assertTrue(outStream.toString().equals("Hi"));
但这也没有用。
这是 doSomething() 方法:
public void doSomething () {
System.out.println("Hi");
}
PrintStream#println(String str)
在字符串末尾附加一个换行符。因此,您的断言应该 trim 添加一行:
assertEquals(outStream.toString().trim(),"Hi");