Java使用Junit测试控制台输出

环境:Junit4.12

//定义打印输出流(PrintStream console)、输出字节流数组 bytes
	PrintStream console = null;
	ByteArrayOutputStream bytes = null;
	
	@org.junit.Before              // 预处理
	 public void Beforetest() throws Exception {
	     bytes = new ByteArrayOutputStream();
	     console = System.out;
	     System.setOut(new PrintStream(bytes));
	 }

	 @org.junit.After              // 后处理
	 public void aftertest() throws Exception {
	    System.setOut(console);
	 }

	 @org.junit.Test               // 测试
	 public void testResult() throws Exception {
		 System.out.println("Hello World!");
	     String s = new String("Hello World!");        // 作为 Oracle
	     assertEquals(s,bytes.toString().trim());  // 比较 Oracle 和 实际输出的值 bytes, 
	 }

你可能感兴趣的:(java,junit)