如何测试Java应用程序的输入和输出?
我有一个简单的Java控制台应用程序,希望自动测试其输入/输出。输入总是只有一行,但输出有时不止一行如何测试Java应用程序的输入和输出?,java,testing,Java,Testing,我有一个简单的Java控制台应用程序,希望自动测试其输入/输出。输入总是只有一行,但输出有时不止一行 我该怎么做?(使用Linux shell/Python/Eclipse/Java)您可以在Linux中使用管道。例如,按如下方式运行您的问题: java myProgram < input_file > output_file 这将输出两个文件之间的任何差异。如果没有差异,则不会返回任何内容。具体地说,如果返回了某些内容,则说明您的程序无法正常工作(或者您的测试出错) 最后一步是用
我该怎么做?(使用Linux shell/Python/Eclipse/Java)您可以在Linux中使用管道。例如,按如下方式运行您的问题:
java myProgram < input_file > output_file
这将输出两个文件之间的任何差异。如果没有差异,则不会返回任何内容。具体地说,如果返回了某些内容,则说明您的程序无法正常工作(或者您的测试出错)
最后一步是用Ruby(:)或Bash(:())等脚本语言链接所有这些命令
这是最直接的进行这种测试的方法。如果您需要编写更多的测试,请考虑使用一些测试框架,如JUnit。< /P> < P>在Eclipse中,您可以使用运行配置设置将控制台输出记录到物理文件。Run->运行配置> >在“标准输入”中选择应用程序->转到通用选项卡>。“输出”部分指定物理文件路径。
您可以使用watch命令执行任何Unix命令。watch命令将一直执行,直到您通过CTRL+C或终止进程为止$ watch -n 5 ls
默认情况下,watch命令使用2秒的间隔,您可以使用-n选项更改它
或者您可以在.bashrc中编写这样的函数(从)
像这样使用它
run 10 command
测试是什么意思?给我们举个例子。如果应用程序是你的,你可以(也就是说,应该)将main()与其他逻辑分开,这样你就可以用xUnit之类的东西来测试你的代码。你应该注意,管道的使用并不特定于Linux。同样的事情也适用于Windows和Mac OS X。
function run() {
number=$1
shift
for i in {1..$number}; do
$@
done
}
run 10 command