読者です 読者をやめる 読者になる 読者になる

単体テストとモック【その2】

単体テストをするに当たって気をつけることは

テスト対象モジュールがテストしやすいこと

これに尽きます。


テストしやすいモジュールとは何でしょう?

設計時にそのことを意識しないまま作ったモジュールは
テストしやすいものではないでしょう。

品質は設計段階で作られるとは良く聞きますが
単体テストの品質は実装設計で作られると思います。

いかにテストしやすいクラス設計をするか

ともすれば
知識はネットで仕入れただけの実装もわからない「自称SE」が
顧客の要求をドキュメントに落としただけのものだけ渡し
このシステムのアーキテクチャはこれだから
オープンソースフレームワークをくっつけただけの絵を渡し
動くものを作らなければならないあなたが、スケジュールもタイトなのに
JUnit単体テストもやっとけよな
なんて言われた日にはテスト嫌いになるに決まってます。

自称SEが駆逐される日を待つよりは
何とか自分のペースで品質を上げる為に試行錯誤しましょうよ。
(一番良いのは、システムの仕様を作りやすいものにすることですが・・・)

モックを使うことで
ただでさえタイトなスケジュールを圧迫しては意味がありません。

その辺が私のモック嫌いの要因の一つです。

モジュールを細分化し
テストしやすいように仕様を単純にし
下のレイヤーから作ることで
モックをなるべく使用することなくJUnitを使い、回帰テストができるシステムにする

が、私の望む単体テスト


テストの技法とかMockの作り方とかよりも、
いかにテストしやすいモジュールを作るかを議論すべきだと思うんです。