Table Driven Testをつかうと、似たデータのテストをブン回すときに便利です。
実際のところ
ヒアドキュメントで
while read desc arg want; do got=$(fn ${arg}) rtrn=$? assertTrue "${desc}: fn() unexpected error; return ${rtrn}" ${rtrn} assertEquals "${desc}: fn() = ${got}, want ${want}" "${got}" "${want}" done <<EOF test#1 value1 output_one test#2 value2 output_two EOF
あるいは、ファイル数が多くなって手に負えなくなるケースもあるでしょう。
そういう時はテスト用のデータを用意
while read desc arg want; do got=$(fn ${arg}) rtrn=$? assertTrue "${desc}: fn() unexpected error; return ${rtrn}" ${rtrn} assertEquals "${desc}: fn() = ${got}, want ${want}" "${got}" "${want}" done </path/to/some/testfile