[英]How to insert input into System.in?
我正在做一个简单的分配,它从System.in
中读取用户输入,但是随后突然想到,该分配要求我创建jUnit测试用例以确认其正常工作。 那么,当坐在测试用例方法上时,如何模拟用户将输入插入System.in
?
在您的实现中,请勿直接使用System.in
,而应使用通用的InputStream
。
这样,在测试类中,可以将ByteArrayInputStream
与固定值一起使用。
您可以传递自定义的InputStream
以便可以模拟读取的内容。 您可以使用System.setIn(..)
设置实现
最简单的实现是使您使用的read(..)
方法返回硬编码的内容。 您需要什么确切的实现取决于您从System.in读取的内容
将以下内容放在测试代码的开头:
StreamWriter writer = new StreamWriter();
Console.SetIn(new StreamReader(writer.BaseStream));
然后,您可以通过writer对象(例如writer.Write(“ whatever ...”)或writer.WriteLine(“ whatever ...”)将任何想要的内容写入控制台。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.