我应该如何为我的程序编写测试环境?

我应该如何为我的程序编写测试环境?

如果我有一个程序、它的输入和所需的输出,我如何自动比较我希望程序提供的内容和它实际提供的内容?例如:

a=${./program < inputfile}
diff ${a} outputfile

答案1

diff将文件名作为参数——而是从命令的标准输出传递数据。如果您使用的是 bash、zsh 或其他类似的 shell,则可以使用进程替换:

diff <(./program < inputfile) outputfile

或者,POSIXly(您也可以使用命名管道,但这可能有点过头了):

./program < inputfile > /tmp/program-out
diff /tmp/program-out outputfile
rm /tmp/program-out

相关内容