株式会社クイープ(翻訳) , 株式会社クイープ(原著) , 角谷 信太郎(監修) , 豊田 祐司(監修) , David Chelimsky(著) , Dave Astels(著) , Zach Dennis(著)
※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。
「こんなことをしたい」「こんな結果を得たい」を実現するための手順を、従来は頭の中や紙の上で整理し、それをプログラミング言語に置き換えて表現していたものですが、したいことを自然言語で記述するだけでアプリケーションができあがるとすれば……。そんな、ドキュメント(仕様)さえ書ければアプリケーションへと昇華してくれるフレームワークがRSpec(とCucumber)です。
もちろん、自然言語とプログラミング言語の間には埋められない深くて暗い溝がありますから、一筋縄では行きません。その橋渡しをする知識をこの一冊が提供します。
Part 1 RSpecとCucumberを使うための準備
Chapter 1 概要
1.1 TDD:そもそもの始まり
1.2 BDD:次のステップ
1.3 RSpec
1.4 Cucumber
1.5 BDDサイクル
Chapter 2 Hello RSpec
2.1 インストール
2.2 Hello RSpec
2.3 Hello Cucumber
Chapter 3 フィーチャを表現する
3.1 Codebreakerの概要
3.2 最初のリリースを計画する
3.3 最初のイテレーションを計画する
3.4 本章で学んだこと
Chapter 4 Cucumberを使ってフィーチャを自動化する
4.1 ステップとステップ定義
4.2 ステップ定義メソッド
4.3 テストダブル
4.4 本章で学んだこと
Chapter 5 RSpecを使ってコードを表現する
5.1 RSpecを使うための準備
5.2 Red:失敗するサンプルから始める
5.3 Green:サンプルを成功させる
5.4 リファクタリング
5.5 本章で学んだこと
Chapter 6 新しいフィーチャを追加する
6.1 Cucumberのシナリオアウトライン
6.2 変化に対応する
6.3 本章で学んだこと
Chapter 7 アルゴリズムを指定する
7.1 最初は最も単純なサンプルから
7.2 重複をなくすためのリファクタリング
7.3 意図を明確にするためのリファクタリング
7.4 本章で学んだこと
Chapter 8 確かなリファクタリング
8.1 コードのにおいを嗅ぎ分ける
8.2 一歩一歩着実に
8.3 リファクタリング後にスペックを更新する
8.4 探索型テスト
8.5 本章で学んだこと
Chapter 9 フィードバック
9.1 Cucumberを使ったコラボレーション
9.2 新しい実装を試してみる
9.3 本章で学んだこと
Part 2 ビヘイビア駆動開発(BDD)
Chapter 10 BDDの実情
10.1 従来のプロジェクトはいかにして失敗するか
10.2 従来のプロジェクトはなぜ失敗するか
10.3 問題の再定義
10.4 アジャイル開発のコスト
10.5 本章で学んだこと
Chapter 11 価値のあるソフトウェアを作成する
11.1 BDDの概要
11.2 BDDの原則
11.3 プロジェクトのインセプション
11.4 リリースサイクル
11.5 ストーリーの構造
11.6 本章で学んだこと
Part 3 RSpec
Chapter 12 サンプルコード
12.1 説明せよ
12.2 保留扱いのサンプル
12.3 フック:before、after、around
12.4 ヘルパーメソッド
12.5 共有サンプル
12.6 入れ子のサンプルグループ
12.7 本章で学んだこと
Chapter 13 RSpec:Expectations
13.1 shouldメソッド、should_notメソッド、マッチャ
13.2 組み込みのマッチャ
13.3 述語マッチャ
13.4 Rubyから見たtrue
13.5 何でもお好きなものを
13.6 演算子を使った式
13.7 生成された説明
13.8 主観性
13.9 本章で学んだこと
Chapter 14 RSpec:Mocks
14.1 テストダブル
14.2 メソッドスタブ
14.3 メッセージエクスペクテーション
14.4 テスト固有の拡張
14.5 メソッドスタブの詳細
14.6 メッセージエクスペクテーションの詳細
14.7 テストダブルとテスト固有の拡張を利用する状況
14.8 リスクとトレードオフ
14.9 他のテストダブルフレームワークを選択する
14.10 本章で学んだこと
Chapter 15 ツールと統合
15.1 rspecコマンド
15.2 TextMate
15.3 Autotest
15.4 Rake
15.5 RCov
15.6 本章で学んだこと
Chapter 16 RSpecの拡張
16.1 メタデータ
16.2 コンフィグレーション
16.3 フィルタリング
16.4 拡張モジュール
16.5 グローバルフック
16.6 モックフレームワーク
16.7 カスタムマッチャ
16.8 マクロ
16.9 カスタムフォーマッタ
16.10 本章で学んだこと
Part 4 Cucumber
Chapter 17 Cucumberの紹介
17.1 全体像
17.2 フィーチャ
17.3 顧客受け入れテスト
17.4 Gherkin
17.5 シナリオ
17.6 ステップ
17.7 cucumberコマンド
17.8 Given、When、Then
17.9 宣言型のシナリオと命令型のシナリオ
17.10 フィーチャの構成
17.11 タグ
17.12 本章で学んだこと
Chapter 18 Cucumberの詳細
18.1 ステップ定義
18.2 Worldオブジェクト
18.3 ステップ定義からステップを呼び出す
18.4 フック
18.5 バックグラウンド
18.6 マルチラインテキスト
18.7 ステップ内のテーブル
18.8 シナリオアウトライン
18.9 プロファイル
18.10 本章で学んだこと
Part 5 ビヘイビア駆動のRails
Chapter 19 RailsにおけるBDD
19.1 外側からのRails開発
19.2 Rails 3 プロジェクトのセットアップ
19.3 Rails 2 プロジェクトのセットアップ
19.4 本章で学んだこと
Chapter 20 CucumberとRails
20.1 ステップ定義のスタイル
20.2 Direct Model Access
20.3 本章で学んだこと
Chapter 21 Webratを使ってブラウザをシミュレートする
21.1 Simulated Browserスタイルのステップ定義を作成する
21.2 ページの移動
21.3 フォームの操作
21.4 ビューマッチャを使って結果を指定する
21.5 高度な機能
21.6 本章で学んだこと
Chapter 22 WebratとSeleniumを使ったブラウザの自動化
22.1 準備作業
22.2 Selenium用のステップ定義を作成する
22.3 Seleniumの問題をデバッグする
22.4 本章で学んだこと
Chapter 23 Railsビュー
23.1 ビュースペックを作成する
23.2 モデルをモック化する
23.3 ヘルパーを指定する
23.4 ビュースペックを作成すべき状況
23.5 本章で学んだこと
Chapter 24 Railsコントローラ
24.1 コントローラスペック
24.2 コンテキストに依存するサンプル
24.3 ApplicationControllerを指定する
24.4 本章で学んだこと
Chapter 25 Railsモデル
25.1 モデルスペックを作成する
25.2 ビジネスルールを指定する
25.3 練習問題
25.4 役に立つヒント
25.5 本章で学んだこと
Appendix A RubySpec
A.1 プロジェクト
A.2 構文
A.3 guard
A.4 拡張性
A.5 Mspec
A.6 タグ
A.7 コミュニティ
Appendix B RSpecの組み込みエクスペクテーション
Appendix C 参考文献
索引
ryonext さん
2012-06-16
RSpec、仕事でも趣味でもバリバリ使ってるけどより一層理解を深めさせてくれた。実はCucumberにも相当触れている。図書館で借りたけど、買おうかな。
joe-re さん
2014-06-19
RSpecよりも、TDDやBDDの考え方が学べるところが素晴らしい本です。もうRed、Green、Refactorからは離れられません。
chezou さん
2014-02-13
BDDの考え方が良くわかる良書。テストを書いてリファクタリングをして行く流れが読めるのは非常に勉強になる