カニ本読書メモ 1章:テストでコードを駆動する
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (47件) を見る
でかいテストを書いてからとかやるより、小さいステップからイテレーティブにやってくとハッピーだよ
- sanity(正気) check
SAN値チェック!?- あからさまな不整合がないか手早く確認していくこと
- サニティー・チェックの直訳は「正気確認」?──IT業界のカタカナ用語はくせ者ばかり:ITpro
コードの正しさは書いたテストの正しさと同じ程度にしかならない
テスト中にプライベートメソッドをsendで頻繁に呼び出す必要があったらリファクタリングのサイン
- モジュールにするとか
- 内部でしか使わないメソッドは隠蔽すべきだし、それの細かい挙動もテストしたい場合、send()は必要だと思うのだけどなぁ…
- プライベートメソッド、テスト駆動開発と優れたデザイン
と、言うことらしい
TDDの最終成果物→仕様通りにメソッドが動作することを検証可能な、自動化されたセーフティーネット
- 問題発見、リファクタリング、イテレーティブな設計といったプロセスがTDDの真価
- 書かれたテストは副作用に過ぎず、TDDの本当の力は最初にテストを書くことで得られる洞察
1個のテストケースに複数のテストを書くより分けた方がよいよー
- どんな問題が起きたかすぐ分かる
- 個々のテストをクリーンな環境で実行できる
例外のテストを書いたら、例外じゃない場合のテストも書こう
XMLとか複雑な出力をテストする時はパーサーライブラリ使った方が、テストがはっきりするよ
- ライブラリがないなら、簡単なフォーマットだったらパーサー書いた方がよいよ
- パーサー書くのに時間かかりすぎるなら、期待する出力をファイルにしといてdiffした結果を出すと良いよ