give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

RSpec初心者必読!「Everyday Rails - RSpecによるRailsテスト入門」を発売しました

はじめに

以前から何度か紹介しているRSpec本の翻訳が終了し、ついに販売を開始しました!
提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFで、下記のページから購入できます。

Everyday Rails - RSpecによるRailsテスト入門 - Leanpub

今回は改めてこの本の紹介を書いてみようと思います。

「Everyday Rails - RSpecによるRailsテスト入門」ってどんな本?

「Everyday Rails - RSpecによるRailsテスト入門 ~テスト駆動開発の習得に向けた実践的アプローチ~」はタイトルの通り、RSpecを使ったRailsの自動テストを説明した技術書です。


内容としては比較的易しめで、そこまで高度な話題は出てきません。なのでRSpecの未経験者~中級者かつ、Railsを使って開発している技術者がターゲット層になります。
とはいえ、上級者の人には全く無用かというとそうでもなく、たとえば後輩プログラマの学習用テキストとして活用することができると思います。


個人的に特にお薦めしたいのはこんな人たちです。

  • 独学でRailsを開発している。
  • RSpecやテストの自動化に興味はあるが、やったことはない。もしくはテストは書いているが、本当にこれで良いのか確信がない。
  • モデルの簡単なテストならすぐ書けるが、モデル以外のテストやちょっと複雑なテストになると面倒になってつい避けてしまう。
  • 自分の周りに先生と呼べるような上級プログラマがない。良いテストを書くための参考になるプロジェクトもない。

そんなあなたにこの本は打ってつけです。
きっとあなたの「良い先生」になってくれます。


本書ではサンプルアプリケーションを使いながら、実際にありそうなテストパターンを手取り足取り教えてくれます。
そして、著者のAaronさんはこの本で学んだことを通じて「あなたが実際に取り組んでいるプロジェクトでテストが書けるようになること」を強く意識しています。
一言で言うと「とても実践的な内容」になっています。


Railsの開発方法を紹介している技術書は数多くありますが、「Railsの自動テスト」というテーマにフォーカスを絞った本はおそらく日本では発売されていないんじゃないかと思います。
そこが既存の技術書と異なるポイントです。


「動くものはとりあえず作れた。でもテストはどうすれば?」という方にぜひ読んでほしい一冊です。

目次

目次はこのようになっています。

  1. イントロダクション
  2. RSpecのセットアップ
  3. モデルスペック
  4. ファクトリ
  5. コントローラスペックの基礎
  6. 高度なコントローラスペック
  7. コントローラスペックのクリーンアップ
  8. フィーチャスペックによる統合テスト
  9. スペックの高速化
  10. その他のテスト
  11. テスト駆動開発に向けて
  12. 最後のアドバイス

 

全体の内容をざっくりまとめるならこんな感じですね。

  • RSpecのセットアップ
  • モデルスペックの書き方
  • ファクトリ(Factory Girls)の使い方
  • コントローラスペックの書き方
  • フィーチャスペック(統合テスト)の書き方
  • テスト駆動開発の実践方法

 

ちょっと立ち読みしたいんだけど?

はい、サンプル版がありますのでそちらを読んでみて下さい!
サンプル版では1章と3章の内容がまるまる読めます。

 

サンプルコードも翻訳しています

ちなみに、日本語版ならではの工夫として、サンプルコードに日本語訳を付けています。
「RSpecを使うと自然な英語みたいに読める」とよく言われますが、日本人にとっては英語そのものが「自然」ではありません。
そこで、「英語が読める人ならこんな風に見えてるんだよ」というのを示すために、「it "xxx"」の部分にそれぞれ日本語のコメントを付けています。


たとえばこんな感じです。

describe Contact do
  # 姓と名とメールがあれば有効であること
  it "is valid with a firstname, lastname and email" do
    contact = Contact.new(
      firstname: 'Aaron',
      lastname: 'Sumner',
      email: 'tester@example.com')
    expect(contact).to be_valid
  end
end

 

ベータ版って何ですか?

現時点(2014/02/07)で発売しているのはベータ版です。
ベータ版には以下のような制限事項があります。

  • 翻訳者による前書きと日本語版における謝辞が作成されていません。
  • 読みやすさや翻訳の精度に改善が必要な箇所が残っている場合があります。
  • 誤字脱字が残っている場合があります。
  • 電子書籍ビューアーによってはフォーマット(太字や斜体の使い分けや改行処理等)が作成者の意図した通りに表示されない可能性があります。

正式版は2014年2月末の公開を予定しています。

2014.02.28追記: 正式版を公開しました。

おかげさまで無事に正式版を公開することができました。
詳しくはこちらのエントリをどうぞ。

正式版公開のお知らせと幻のあとがき・Everyday Rails - RSpecによるRailsテスト入門 - give IT a try

 

とはいえ、正式版の発売を待つ理由は特にありません。
なぜなら、購入者であればいつでも最新版を無料で取得できるからです。


正式版の発売後も原著のアップデートに合わせて日本語版もアップデートしていく予定なので、どのタイミングで購入してもらっても損はありません。
ちなみに原著はRSpec 3.0への対応を予定しているようです。

紙の本はありますか?

いいえ、この本は電子書籍オンリーです。
紙の本はありませんが、その代わりに電子書籍の柔軟性を活かして今回のように「ベータ版を先に発売して、後からアップデート」みたいな試みもできるようになっています。

専用端末を使うも良し、スマートフォンやタブレットを使って読むも良し、リファレンスとしてPCに入れるも良し

前述の通り、提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFの3種類です。


f:id:JunichiIto:20140207071929p:plain
http://freebiesbug.com/psd-freebies/device-icons/


Kindle Paperwhiteのような専用端末を持っている人なら、当然その端末にダウンロードして読むことができます。


また、専用端末を持っていなくても、スマートフォンやタブレットを持っている人ならKindleアプリやiBooksを使って読むことができます。
スマホに入れておけば、満員電車の中でも片手で読み進めていけると思います。


もちろん、PCに入れて読むこともできます。
PCに入れておけば「そういえばコントローラのスペックってどう書くんだったっけ?」とちょっと困ったときのリファレンスとして活用することもできます。

2014.2.10追記: 1冊買って職場やコミュニティで共有するのはOKですか?

すいません、Leanpubの利用規約上、1冊を同時に複数のメンバーで共有するにはNGになっています。
その代わり、職場やコミュニティで共有するためのお得なチームパッケージを用意しているので、そちらを利用してもらうと良いかもしれません。


詳しくはこちらのエントリをご覧下さい。

 

で、どうやって買うの?

クレジットカードがあれば、どなたでも購入できます。
ただし、Leanpubのサイトで直接使えるクレジットカードはVISAかMasterCardのみです。
JCB等のカードを使う場合はPaypal経由で購入して下さい。
f:id:JunichiIto:20140207081718j:plain


購入手続きは以下のようになります。


まずLeanpubの書籍紹介ページ(ランディングページ)にアクセスして下さい。
Everyday Rails - RSpecによるRailsテスト入門 - Leanpub


ページを開くと、緑色の購入ボタンがあります。
購入ボタンをクリックすると、購入画面が現れます。
f:id:JunichiIto:20140207130721p:plain:w200


購入画面には購入価格を決めるスライダが出てきます。
なんと、Leanpubではあなたが購入価格を決定できるのです。
f:id:JunichiIto:20140207130737p:plain:w500


この書籍の推奨購入価格は$20.00(約2000円)ですが、最低価格は$16.00(約1600円)になっています(シングルユーザーライセンスの場合)。
もちろん、$16.00で購入していただいても全く構わないのですが、「翻訳お疲れさーん」の気持ちをプラスアルファしてもらえると翻訳者チームも喜ぶと思います(^^)


その後は支払いの手段を選択します。
クレジットカード情報(VISA or MasterCard)を直接入力するか、右上にあるPayPalボタンをクリックして、支払いの手続きをして下さい。
f:id:JunichiIto:20140214143335p:plain:w500


支払いが完了すると、ダウンロードページが表示されます。
PDF、EPUB、MOBIの中からお好きなフォーマットをどれか、もしくは全部選んでダウンロードして下さい。
f:id:JunichiIto:20140207093116p:plain:w500

Amazonでも買えますか?

いいえ、この本が購入できるのはLeanpubのみです。
Amazonで購入することはできませんが、Leanpubで購入することにより、購入価格を自分で決めたり、更新版の通知を受け取ったりすることができます。

質問や感想、不備の指摘等を報告したいのですが、どうすれば?

質問やご意見、ご感想は大歓迎です!
報告する方法はいくつかあります。


一つはLeanpubのフィードバックページから報告してもらうことです。
掲示板方式、もしくは送信フォーム形式のどちらかを選べます。


もう一つは翻訳者チームにTwitterでメンションを飛ばしてもらうことです。
翻訳者チームのメンバーは3人いるので、声をかけやすいメンバーに気軽にメンションを飛ばして下さい。

 

まとめ

翻訳作業中の裏話も書こうと思ったのですが、本の紹介だけでかなり長くなったのでまた後日お話ししようと思います。

 

とりあえず裏話を一言でまとめるなら、思った以上に大変でした!!
ちょっと翻訳をナメてたかもしれません。


今までいろんな訳書を読んできましたが、こんなに大変な苦労をもって世に出てきてたんだな~ということを思い知りました。
実際に翻訳してみると、あまり気やすく「値段が高い」とか「訳がわかりにくい」とか言ったらバチが当たるな~、という気持ちになりました。


それから、ここまでたどり着いたのは翻訳者チームの力だけでなく、いろんな人たちのサポートや協力があってこそです。
時間がなくて日本語版の謝辞がまだ書けていませんが、お世話になった方々には改めて書籍中の謝辞やブログで感謝の気持ちを述べたいと思います。


何にせよ、みなさんから「この本を読んでRSpecを使ってRailsをテストできるようになりました!」と言ってもらえたら、翻訳者チームとしては万々歳です。
みなさん、楽しんで読んで下さい!Enjoy!


Everyday Rails - RSpecによるRailsテスト入門 - Leanpub