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没有捕获它。知道为什么吗