私のプログラムのテスト環境をどのように書くべきですか?

私のプログラムのテスト環境をどのように書くべきですか?

プログラム、その入力、および希望の出力がある場合は、プログラムが提供したいものと実際に提供するものを自動的に比較するにはどうすればよいですか?たとえば、

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

ベストアンサー1

diffファイル名を引数として渡します。代わりに、コマンドの標準出力からデータを渡してください。 bash、zsh、または他の同様のシェルを使用している場合は、プロセス置換を使用できます。

diff <(./program < inputfile) outputfile

またはPOSIXly(名前付きパイプを使用することもできますが、これは少し過剰になる可能性があります):

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

おすすめ記事