我目前遇到一个问题,我需要测试数千个控制台输入,以便为项目中的另一个团队创建日志。该项目正在eclipse(java)
中开发基本上这个过程如下:
1)程序在控制台上加载和输出一些文本
2)用户输入文本(有时取决于程序之前打印的内容)
3)程序输出更多文本准备再次输入。
基本上我需要编写/使用一个脚本,它允许我将所有输入放入某种文件中,让它运行以创建这个日志文件。
可以这样做,你有任何提示吗?
答案 0 :(得分:0)
通常,解决此类问题的一种好方法是抽象输入和输出。例如,让您的控制类接受 InputStream 和 OutputStream 作为其构造函数中的参数。
在实际程序的 main 方法中,分别使用 System.in 和 System.out 创建该控制器的实例。对于“批处理”程序,您可以提供您喜欢的任何其他 InputStream 和 OutputStream 。
关于user1291492的评论:总是建议进行单元测试,但看起来你的问题实际上并不与测试相关,而是修改你的程序以充当某种中介,这不是一回事。
如果你真的需要快速&肮脏的解决方案(我建议不要承担技术债务),在* NIX系统上你可以试试这个:
cat * | java -jar yourprogram.jar > logoutput.txt
假设您将所有输入文件复制到一个目录中。 cat 将连接目录中的所有文件,然后通过管道传输到您的程序的标准输入(通过“|”),其标准输出被重定向到“logoutput.txt(via”> “)。