【测试】测试控制台输出(管道)

37 篇文章 0 订阅
6 篇文章 0 订阅

参考链接:http://blog.csdn.net/hx_uestc/article/details/7235506

测试测序中System.out.println()是否符合预期,需要用Java的管道流PipedInputStream和PipedOutputStream来截取控制台输出流

	/*
	 * 截取控制台输出流(管道)
	 */
	@Test
	public void testPrint(){
		/*(直接用)
		 * 写入到PipedOutputStream输出流的数据可以从对应的PipedInputStream输入流读取
		 * 建立了一个PipedInputStream,把它设置为所有写入控制台流的数据的最终目的地
		 * 所有写入到控制台流的数据都被转到PipedOutputStream
		 * 这样,从相应的PipedInputStream读取就可以迅速地截获所有写入控制台流的数据。
		 */
		PipedInputStream pipedIS = new PipedInputStream();
		PipedOutputStream pipedOS = new PipedOutputStream();
		try {
		   pipedOS.connect(pipedIS);
		}
		catch(IOException e) {
		   System.err.println("连接失败");
		   System.exit(1);
		}
		PrintStream ps = new PrintStream(pipedOS);
		System.setOut(ps);
		System.setErr(ps);
		

		new Date(12, 31, -111).printDate();	//测试代码
		
		/*
		 * 使用bufferreader读取PipedInputStream中的缓冲值
		 */
		BufferedReader br = new BufferedReader(new InputStreamReader(pipedIS));
		StringBuffer sb = new StringBuffer();		
		try {
			String s;	//存放截取的值
			if((s = br.readLine()) != null){
				assertEquals("12/31/-111", s);	//断言
			}
		} catch (IOException e) {
			assertTrue(false);
		}
		
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值