JUnit断言两个字符串是否相等

时间:2015-06-01 17:45:28

标签: java junit outputstream

所以我抬头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");
}

1 个答案:

答案 0 :(得分:4)

PrintStream#println(String str)在字符串末尾添加换行符。因此,您的断言应该减少额外的行:

assertEquals(outStream.toString().trim(),"Hi");