11.10 モックを使ったワークフローテスト
内容
ユニットテストは一連の順序を検証したり、似たようなほかのシナリオを検証することは出来ない。こういう場合は、ワークフローテストを行う。
ワークフローテストは実際のオブジェクトを使うのではなくモックを使う。
モックは外部との依存関係とどのように相互作用するかを検証するために使う。
テストとしては、モックが正しいパラメータで呼び出されたかを検証する。
11.11 セーフティネットを作る
テスト駆動開発はソフトウェアを作るためのリズムや、開発者が安全にコードを書くためのセーフティネットを提供してくれる。
アクロバットをする人にとってのセーフティネットは命を守るものだが、開発者にとってのセーフティネットは、心理的な保証だ。
テストファースト開発を行う最大の利点は、ソフトウェア開発者がテストしやすいコードを書くようになり、維持するコストも抑えられること。
開発者は設計から始めるように教えられるが、プロジェクトの後半のほうが正しい設計についてはるかに多くのことがわかるため、最後に設計をするのが良い。
最後に設計する説明は次の章。
学び
- 外部との依存関係と相関関係をテストするのはワークフローテストと呼ぶこと
- ワークフローテストもモックを使って行うこと
- テストファースト開発は開発者に心理的安全を保証してくれて、結果的にコストを抑えることができる。
心理的安全は、心に余裕を生み、焦って汚いコードになることを防ぎ、保守性、テスト容易性を保つことができ、結果的に拡張コストを少なくすることができる。
学びを活かすアイディア・行動
- テスコードの目的のための事前知識整理