RT:
參考如下Junit 測試代碼:
注釋部分
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.junit.Assert.*;
public class HelloWorldTest {
PrintStream console = null; // 聲明(為null):輸出流 (字符設備) console
ByteArrayOutputStream bytes = null; // 聲明(為null):bytes 用于緩存console 重定向過來的字符流
HelloWorld hello;
@org.junit.Before
public void setUp() throws Exception {
hello = new HelloWorld();
bytes = new ByteArrayOutputStream(); // 分配空間
console = System.out; // 獲取System.out 輸出流的句柄
System.setOut(new PrintStream(bytes)); // 將原本輸出到控制臺Console的字符流 重定向 到 bytes
}
@org.junit.After
public void tearDown() throws Exception {
System.setOut(console);
}
@org.junit.Test
public void testResult() throws Exception {
hello.helloWorld();
String s = new String("Hello World! Hello Java!
"); // 注意:控制臺的換行,這里用 '
' 表示
assertEquals(s, bytes.toString()); // bytes.toString() 作用是將 bytes內(nèi)容 轉換為字符流
}
}