2

即使两个字符串相同,assertEquals() 也会失败......有人可以帮我找出原因吗?

 public void testSet() 
 {
    ByteArrayOutputStream outContent = new ByteArrayOutputStream();

    System.setOut(new PrintStream(outContent));

    instance.get();

    String output = outContent.toString();
    String input="i=1\r\n";
    assertEquals(input,output);
 }

 get()
 {
    int i=1;
    System.out.println("i="+i);
 }
4

1 回答 1

4

您在附加在输出缓冲区newline中的方法中使用 print 语句。这样,您将获得不等于“i=1”的 `output = "i=1\r\n"。get()\r\n

使用print without newline i.e. print()如下:

 System.out.print("i="+i);

如果您不想使用print()方法,则从输出中截断\r\n如下:

    String output = outContent.toString();
    output = output.replaceAll("\r\n", "");
    String input="i=1";
    assertEquals(input,output);
于 2012-11-03T21:35:53.097 回答