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の60日間100%満足保証
購入後60日以内であれば、たった2クリックでLeanpubでの購入について100%返金を受けることができます。
技術的には、本やコースのファイルはお手元に残るため、これは私たちにとってリスクとなります。しかし、私たちは自社の製品やサービス、そして著者と読者を深く信頼しているため、販売する全ての商品に対して全額返金保証を喜んでご提供しています。
何かの良し悪しは実際に試してみないとわかりません。100%返金保証があるため、試すことに全くリスクはありません!
ですから、カートに追加するボタンをクリックしない理由はないですよね?
利用規約の詳細を見る...
$10の購入で$8、$20の購入で$16を獲得
$7.99以上の購入に対して80%のロイヤリティを、$0.99から$7.98までの購入に対して50セントの定額手数料を差し引いた80%のロイヤリティをお支払いします。$10の売上で$8、$20の売上で$16を獲得できます。つまり、あなたの本が$20で5000部返品なしで売れた場合、$80,000を獲得できます。
(はい、すでに多くの著者がLeanpubでそれ以上を稼いでいます。)
実際、著者たちはLeanpubでの執筆、出版、販売を通じて1,400万ドル以上を獲得しています。
Leanpubでの執筆についてさらに詳しく
無料アップデート。DRMフリー。
Leanpubの本を購入すると、著者が本を更新し続ける限り、無料でアップデートを受け取ることができます!多くの著者は執筆中の本をLeanpubで公開しています。全ての読者は、購入時期や支払額(無料も含む)に関係なく、無料アップデートを受け取ることができます。
ほとんどのLeanpubの本は、PDF(コンピュータ用)とEPUB(スマートフォン、タブレット、Kindle用)で利用できます。本に含まれるフォーマットは、このページの右上に表示されています。
さらに、Leanpubの本にはDRMによるコピー保護は一切ないため、対応デバイスで簡単に読むことができます。