こんにちは!kossyです!
さて、今回はEffective Rubyの第6章の覚えておくべき事項を
ブログにまとめてみたいと思います。
前回までの章をまとめたものはこちら
Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録
Effective Ruby 第2章まとめ - その辺にいるWebエンジニアの備忘録
Effective Ruby 第3章まとめ - その辺にいるWebエンジニアの備忘録
Effective Ruby 第4章まとめ - その辺にいるWebエンジニアの備忘録
Effective Ruby 第5章まとめ - その辺にいるWebエンジニアの備忘録
第6章 テスティング
6-1. MiniTestユニットテストに慣れよう
- テストメソッドの名前には、"test_"というプレフィックスを付けなければならない。
- トラブルシューティングやメンテナンスを楽にするために、テストメソッドは短くする。
- エラー時により良いメッセージを表示させるために、最も適したアサーションを使うようにする。
- アサーションとその逆(refute_)は、MiniTest::Assertionsモジュールでドキュメントされている。
6-2. MiniTestスペックテストに慣れよう
- テストクラスの作成にはdescribeメソッド、テスティングの定義にはitメソッドを使う。
- アサーションメソッドも使えるが、スペックテストでは一般にObjectクラスに注入されたエクスペクテーションメソッドを使う。
- エクスペクテーションは、MiniTest::Expectationsモジュールでドキュメントされている。
6-3. モックオブジェクトで決定論をシミュレートしよう
- 外の世界の非決定性からテストを切り離したいときにはモックを使うとよい。
- モックテストなどのメソッドを交換するテストは、本番でエラーを起こす未テストコードを残す危険がある。
- テストメソッドを終える前に、必ずMiniTest::Mock#verifyを呼び出す。