学び
- まず必要な箇所・効果的な箇所からテストを書く
- 全箇所に書こうとしない
- unit test, component test, integration test, api testがあって、ついでguiのテストという優先度合い
- 再現できること、独立していることが重要
- つまりテストの結果として信頼できることが最低限、と理解した
疑問
設計の可動域を確保する
実装のテストを書かないこと
とあったが、なぜ設計の可動域を確保するために実装のテストを書いてはいけないのか?
調べたり考えたりしたメモ
- 実装のテストと仕様のテストがある
- 実装 = 内部の実装、仕様 = 外から見た振る舞いと考えるとわかりやすいかも?
- unit testで言うなら
- メソッドの返り値をテストするのは仕様のテスト
- メソッドの中の処理を逐一テストするのは実装のテスト、ということかもしれない
これなら確かに、設計の可動域(余裕)を確保するために実装のテストを避けた方が良いというのは理解できた。 また、TDD的にテストから書くことを念頭に置いているなら、可動域という言い方もかなり納得できた。
参考リンク 「実装をテストする」とは? - bluebird