Java 单元测试系统从主设备打印输出

Java 单元测试系统从主设备打印输出,java,junit,main,Java,Junit,Main,我在测试输出的正确值时遇到问题 private final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); private final ByteArrayOutputStream errContent = new ByteArrayOutputStream(); private final PrintStream originalOut = System.out; private final PrintStream

我在测试输出的正确值时遇到问题

private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;

@Before
public void setUpStreams() {
    System.setOut(new PrintStream(outContent));
    System.setErr(new PrintStream(errContent));
}

@After
public void restoreStreams() {
    System.setOut(originalOut);
    System.setErr(originalErr);
}

@Test
public void testMain() {
    String[] args = new String[1];

    args[0] = "test/resources/input.txt";

    DemoClass.main(args);

    assertEquals("expectedVal", outContent.toString());
}
我的主张是失败的,并说:

expectedVal

org.junit.ComparisonFailure: expected:<[expectedVal]> but was:<[]>
expectedVal
org.junit.ComparisonFailure:应为:但为:
所以看起来我期望的val是系统打印,但是我的outcontent没有捕获它。知道为什么吗