- 章立て
- この本を読むべき人
- オススメな読み方
- 所感
- まとめ
- 第1部 テスト駆動開発
- 第 1章 自動テスト
- 第 2章 テスト駆動開発プロセス
- 第 3章 現役で使われているツール
- 第 4章 学ぶためのテスト
- 第2部 プログラマのためのJavaScript
- 第 5章 関数
- 第 6章 関数とクロージャの応用
- 第 7章 オブジェクトとプロトタイプの継承
- 第 8章 ECMAScript第5版
- 第 9章 控えめなJavaScript
- 第10章 機能検出
- 第3部 JavaScriptテスト駆動開発の実際
- 第11章 Observerパターン
- 第12章 ブラウザ間の違いの吸収:Ajax
- 第13章 AjaxとCometによるデータのストリーミング
- 第14章 Node.jsによるサーバーサイドJavaScript
- 第15章 TDDとDOM操作:チャットクライアント
- 第4部 テストのパターン
- 第16章 モックとスタブ
- 第17章 優れた単体テストを書く
各章ごとに分かれます。
「導入」です。読みべき人は以下。
- 「TDDなにそれ?おいしいの?」な人
- 「JSでTDD?Javaならやったことあるけど...」な人
- TDDに懐疑的な人
TDDは「テスト手法」ではなく「設計と開発のためのプラクティス」です。第1部ではそれに対する理解の足がかりが得られ、JSでのTDDを始めるにあたって必要な情報が解説されています。
JSを扱う上での他言語と特に異なる点について解説しています。この章はTDD関係ありません。JSについて深い知識を有している人は読み飛ばしてOK。以下に当てはまる人は読んでおくといいです。
- 「JSの関数はファーストクラスオブジェクト」の意味がよく分からない
- 「実行コンテキスト」「スコープ」がよく分からない
- 「クロージャとその利点」「即時実行関数の使い所」がよく分からない
- 「プロトタイプ継承」がよく分からない
- 「ECMAScript5」がよく分からない
- 「UA文字列判定よりもよりよい機能検出(feature detection)」について知りたい人
様々なモジュールの実装についてTDDでどのように行うかを解説しています。
- 「TDDによるJS実装の詳細」を学びたい
- 「イベントドリブンなJSでのTDDが分からない」という人
- 「Hostオブジェクトが絡むとTDDどうやるの?」という人
- 「Node.jsでのTDDプラクティスってどうなの?」な人
この本のメインコンテンツです。第1部を読んでTDDに興味が出た、詳細が知りたい、という人が理解を深めるためにこの章を熟読するべきです。
よりよいTDDを行うため、
- モックとスタブについての考察
- テストの品質を上げるためのガイドライン
について解説しています。「TDD実践をもう始めた、そこからさらによいTDDを書きたい」という人が読むべき章です。
各章の最後にある「まとめ」がよくまとまっているので、まずは各章の導入部分とまとめだけを読めば良いです(30分ぐらいで全容が把握できる)。第3部以降はまとめを読んで気になる章から読んでいけばよいです。
またTDDに興味沸かないという人でもJSの知識として第2部は読んでおくほうがよいです。
TDDは「テスト手法」ではなく「設計と開発のためのプラクティス」という認識が深まった。
うまく書かれたユニットテストはJSで直面する問題(クロスブラウザロジックの隠蔽やHostオブジェクトが絡むロジックの設計)に対してのよい設計を導いてくれる(気がしてきた)。
また外部から見たオブジェクトの仕様(IN/OUT、状態遷移、振る舞い)を表現する手法としてユニットテストは有効である。本書でも一貫してテストコードファーストでの解説がなされておりそれが実感できる。
ぶっちゃけ「JSのTDDはこうすればよい!」という銀の弾丸的なTDD方法論が分かったわけではない。それはおそらく書くプロダクトコードでケースバイケース。ただイベントドリブンなJSにおいてどういった設計をしながらTDDで開発するのが良いか、という指針は理解出来たと思う。
構成のまとまり具合と網羅しているJS情報が秀逸。良書。 JSでTDDをしたい人は必読 。そうじゃなくても JSデベロッパーは第2部必読 。