繁体   English   中英

如何将输入插入System.in?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM