Everyday Rails - RSpecによるRailsテスト入門 (パーソナル(シングルユーザーライセンス))
Everyday Rails - RSpecによるRailsテスト入門
テスト駆動開発の習得に向けた実践的アプローチ
本書について
みなさんはこんなふうにRailsアプリケーションを作ったことはありませんか?たとえば、ブラウザをポチポチとクリックするだけでテストを終わらせて「たぶん大丈夫」と思い込んだり、「とにかく全部うまくいきますように」とただ祈るだけだったり……。
心配しないでください。それは誰もが通る道です。アプリケーションのテストやテスト駆動開発はRails開発における重要なトピックですが、巷の参考書を見ると適当な説明で済ませているものも多かったりします。本書「Everyday Rails - RSpecによるRailsテスト入門」では、どのようにして私がそうしたテクニックを身につけたのか、そして、どのようにしてコードの信頼性を上げ、ブラウザ上で延々とテストしなくて済むようにしたきたのかをみなさんに説明します。
対応バージョンについて
2024年1月のアップデートで、本書のコンテンツをRails 7.1とRSpec Rails 5.1に対応させました。これは日本語版独自のアップデートです。独自アップデートの詳細はこちらのブログ記事をご覧ください。
チームパッケージについて
チームパッケージは本書をチーム内で共有するためのパッケージです。シングルユーザーライセンスよりもお求めやすい価格設定になっています。ご利用方法は以下の通りです。
- パッケージを購入された方(代表者)が電子書籍ファイル(PDF、EPUB、MOBI)をダウンロードして下さい。
- ダウンロードしたファイルをチーム内で共有して下さい。
- パッケージで指定された人数までであれば、誰でも本書を自由に読むことが可能です。
ライセンスに関する備考
- ライセンス数は「最大同時貸出人数」を表します。
- たとえば3コピーライセンスの場合、5人のチームであっても同時に3人以内であれば、自由にメンバーを変えて読むことができます。
- 電子書籍ファイルはDRMフリーであるため、システム的な制限(ネット経由のアクティベーション等)は特にありません。
ライセンスに関して何かご不明な点があれば、以下のGitHub issuesにてお問い合わせ下さい。
https://github.com/JunichiIto/everydayrails-rspec-jp-2022/issues
パッケージ
パーソナル(シングルユーザーライセンス)
個人で購入される場合はこちらを選択して下さい。
Includes:
RSpec 2.14-2.99 edition
RSpec 2.14-2.99に対応した以前の版です。
Rails 4.2 / RSpec 3.1 edition
Rails 4.2 / RSpec 3.1に対応した以前の版です。 日本語版独自の追加コンテンツとして提供していた「RSpecユーザのためのMinitestチュートリアル」も含まれます。
Rails 5.1 / RSpec Rails 3.6 edition
Rails 5.1 / RSpec Rails 3.6に対応した以前の版(原著と同じ内容の版)です。
PDF
EPUB
WEB
日本語
スモールチームパッケージ(3コピーライセンス)
小規模チーム向けのパッケージです。このパッケージには3人分のライセンスが含まれます。
Includes:
RSpec 2.14-2.99 edition
RSpec 2.14-2.99に対応した以前の版です。
Rails 4.2 / RSpec 3.1 edition
Rails 4.2 / RSpec 3.1に対応した以前の版です。 日本語版独自の追加コンテンツとして提供していた「RSpecユーザのためのMinitestチュートリアル」も含まれます。
Rails 5.1 / RSpec Rails 3.6 edition
Rails 5.1 / RSpec Rails 3.6に対応した以前の版(原著と同じ内容の版)です。
PDF
EPUB
WEB
日本語
ラージチームパッケージ(10コピーライセンス)
大規模チーム向けのパッケージです。このパッケージには10人分のライセンスが含まれます。
Includes:
RSpec 2.14-2.99 edition
RSpec 2.14-2.99に対応した以前の版です。
Rails 4.2 / RSpec 3.1 edition
Rails 4.2 / RSpec 3.1に対応した以前の版です。 日本語版独自の追加コンテンツとして提供していた「RSpecユーザのためのMinitestチュートリアル」も含まれます。
Rails 5.1 / RSpec Rails 3.6 edition
Rails 5.1 / RSpec Rails 3.6に対応した以前の版(原著と同じ内容の版)です。
PDF
EPUB
WEB
日本語
目次
- この版のまえがき
- 日本語版のまえがき
- 謝辞
- 日本語版独自のアップデート内容について
-
1. イントロダクション
- なぜRSpecなのか?
- 対象となる読者
- 私が考えるテストの原則
- 本書の構成
- サンプルコードのダウンロード
- コードの方針
- 間違いを見つけた場合
- gemのバージョンに関する注意点
- サンプルアプリケーションについて
- サンプルアプリケーションのセットアップ手順
-
2. RSpecのセットアップ
- Gemfile
- テストデータベース
- RSpecの設定
- 試してみよう!
-
rspec
binstubを使って短いコマンドで実行できるようにする - ジェネレータ
- まとめ
- Q&A
- 演習問題
-
3. モデルスペック
- モデルスペックの構造
- モデルスペックを作成する
- RSpecの構文
- バリデーションをテストする
- インスタンスメソッドをテストする
- クラスメソッドとスコープをテストする
- 失敗をテストする
- マッチャについてもっと詳しく
- describe、context、before、afterを使ってスペックをDRYにする
- まとめ
- Q&A
- 演習問題
-
4. 意味のあるテストデータの作成
- ファクトリ対フィクスチャ
- Factory Botをインストールする
- アプリケーションにファクトリを追加する
- シーケンスを使ってユニークなデータを生成する
- ファクトリで関連を扱う
- ファクトリ内の重複をなくす
- コールバック
- ファクトリを安全に使うには
- まとめ
- 演習問題
-
5. コントローラスペック
- コントローラスペックの基本
- 認証が必要なコントローラスペック
- ユーザー入力をテストする
- ユーザー入力のエラーをテストする
- HTML以外の出力を扱う
- まとめ
- Q&A
- 演習問題
-
6. システムスペックでUIをテストする
- なぜシステムスペックなのか?
- システムスペックで使用するgem
- システムスペックの基本
- CapybaraのDSL
- システムスペックをデバッグする
- JavaScriptを使った操作をテストする
- ヘッドレスドライバを使う
- JavaScriptの完了を待つ
- スクリーンショットを使ってデバッグする
- システムスペックとフィーチャスペック
- まとめ
- 演習問題
-
7. リクエストスペックでAPIをテストする
- リクエストスペックとシステムスペックの比較
- GETリクエストをテストする
- POSTリクエストをテストする
- コントローラスペックをリクエストスペックで置き換える
- まとめ
- 演習問題
-
8. スペックをDRYに保つ
- サポートモジュール
-
let
で遅延読み込みする - shared_context (contextの共有)
- カスタムマッチャ
- aggregate_failures (失敗の集約)
- テストの可読性を改善する
- まとめ
- 演習問題
-
9. 速くテストを書き、速いテストを書く
- RSpecの簡潔な構文
- エディタのショートカット
- モックとスタブ
- タグ
- 不要なテストを削除する
- テストを並列に実行する
- Railsを取り外す
- まとめ
- 演習問題
-
10. その他のテスト
- ファイルアップロードのテスト
- バックグラウンドワーカーのテスト
- メール送信をテストする
- Webサービスをテストする
- まとめ
- 演習問題
-
11. テスト駆動開発に向けて
- フィーチャを定義する
- レッドからグリーンへ
- 外から中へ進む(Going outside-in)
- レッド・グリーン・リファクタのサイクル
- まとめ
- 演習問題
-
12. 最後のアドバイス
- 小さなテストで練習してください
- 自分がやっていることを意識してください
- 短いスパイクを書くのはOKです
- 小さくコードを書き、小さくテストするのもOKです
- 統合スペックを最初に書こうとしてください
- テストをする時間を作ってください
- 常にシンプルにしてください
- 古い習慣に戻らないでください!
- テストを使ってコードを改善してください
- 自動テストのメリットを周りの人たちに売り込んでください
- 練習し続けてください
- それではさようなら
-
Railsのテストに関するさらなる情報源
- RSpec
- Railsのテスト
-
訳者あとがき
- 伊藤淳一
-
日本語版の謝辞
- 改訂版(2017年)の謝辞
- 初版の謝辞
- Everyday Railsについて
- 著者について
-
訳者紹介
- 伊藤淳一
- カバーの説明
- 変更履歴
Leanpubは無条件かつノーリスクで100%の満足を保証します
Leanpubでお買い上げいただいた書籍は、ご購入後60日以内であれば全額返金いたします。払い戻しはわずか2クリックで完了します。払い戻し処理は手作業で行うため、完了まで数日かかる場合があります。詳しくは利用規約をご覧ください。
10ドルの購入で8ドル、20ドルの購入で16ドルを稼ぐ
私たちは7.99ドル以上の購入で80%のロイヤリティを支払い、0.99ドルから7.98ドルの購入には80%のロイヤリティから50セントの定額料金を差し引いた金額を支払います。10ドルの販売で8ドル、20ドルの販売で16ドルを稼ぐことができます。したがって、20ドルで本を5000冊売却し、返金されなかった場合、80,000ドルを稼ぐことができます。
(はい、すでにLeanpubでそれ以上の収益を上げた著者もいます。)
実際に著者はLeanpubで1,300万ドル以上を書き、出版し、販売して稼いでいます。
Leanpubでの執筆について詳しく知る
無料更新。無料アップデート。 DRMフリー。
Leanpubの本を購入すると、著者が本を更新している限り、無料で更新されます!多くの著者は、Leanpubを使用して、執筆中の書籍を出版しています。いつ本を購入したか、いくら支払ったかに関係なく、すべての読者は無料のアップデートを入手できます(無料も含む)。
Leanpubの本はPDF(コンピューター用)、EPUB(iPad用)、MOBI(Kindle用)のフォーマットに対応してます。本に含まれるフォーマットは、このページの右上隅に表示されます。
Leanpubの本には、DRMコピー防止のナンセンスがないため、サポートされているデバイスで簡単に読むことができます