渋川@東工大です。
> >しかし、実際に使うメソッドでは、ファイルの入出力や、DBの読み書き、
> >など、assert文ではテストできない又はし難いメソッドが多く存在します。
ファイル入出力ですが、入出力先を内部メモリなどにスイッチできるようにして
おけば簡単にテストできます。情報処理の本とかによく出ているスタブです。例
えば、テスト対象のメソッドを、
Fixture.print(iostream&);
というふうにしておけば、テストの時は内部メモリに対して入出力をするスト
リームのstringstreamを使って・・・
stringstream aStream;
aFixture.print(aStream);
assert(aStream.str() == "ファイルの中身");
と、することで文字列の比較を使ってテストができます。画面入出力のテストも
同様に行えます。
あらかじめファイルの雛形があるのでしたら、実際に出力させ、外部コマンドの
diffを利用して、
assertEquals(0, system("diff -q test.txt output.txt"));
というのが簡単でいいかもしれません。差分も出せますし。
# Javaは詳しくないのでC++で失礼します。
-----
東京工業大学 電気電子工学科 3年
_/_/_/ しぶかわよしき JA6HFA/1
_/ mailto: shibu@....jp / ja6hfa@....jp