単体テストをするに当たって気をつけることは
テスト対象モジュールがテストしやすいこと
これに尽きます。
テストしやすいモジュールとは何でしょう?
設計時にそのことを意識しないまま作ったモジュールは
テストしやすいものではないでしょう。
品質は設計段階で作られるとは良く聞きますが
単体テストの品質は実装設計で作られると思います。
いかにテストしやすいクラス設計をするか
ともすれば
知識はネットで仕入れただけの実装もわからない「自称SE」が
顧客の要求をドキュメントに落としただけのものだけ渡し
このシステムのアーキテクチャはこれだから
とオープンソースのフレームワークをくっつけただけの絵を渡し
動くものを作らなければならないあなたが、スケジュールもタイトなのに
JUnitで単体テストもやっとけよな
なんて言われた日にはテスト嫌いになるに決まってます。
自称SEが駆逐される日を待つよりは
何とか自分のペースで品質を上げる為に試行錯誤しましょうよ。
(一番良いのは、システムの仕様を作りやすいものにすることですが・・・)
モックを使うことで
ただでさえタイトなスケジュールを圧迫しては意味がありません。
その辺が私のモック嫌いの要因の一つです。
モジュールを細分化し
テストしやすいように仕様を単純にし
下のレイヤーから作ることで
モックをなるべく使用することなくJUnitを使い、回帰テストができるシステムにする
が、私の望む単体テスト。
テストの技法とかMockの作り方とかよりも、
いかにテストしやすいモジュールを作るかを議論すべきだと思うんです。