give IT a try

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

RSpec 3 へバージョンアップする準備を始めよう!「Everyday Rails - RSpecによるRailsテスト入門」の改訂版をリリースしました

お知らせ

前回のエントリでも予告したとおり、「Everyday Rails - RSpecによるRailsテスト入門」をアップデートし、新しく「RSpec 3に向けて」という章を追加しました。


Everyday Rails - RSpecによるRailsテスト入門」をすでに購入されている方はLeanpubにログインして改訂版をダウンロードすることができます。
もちろん、本日以降に購入した方は最初から改訂版を手に入れることができます。


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


「RSpec 3に向けて」はどんな内容?

新しく追加した「RSpec 3に向けて」という章では、本書の中で使用しているサンプルアプリケーションのテストスイートをRSpec 2.14から2.99へアップグレードする方法を説明しています。


RSpec 2.99はRSpec 2とRSpec 3の中間バージョンで、RSpec 2の動作を保ちつつ、RSpec 3では廃止される非推奨APIの使用を警告してくれるバージョンです。
RSpec 2.99で報告される警告を全部潰せばRSpec 3でもテストはほぼ問題なく動くはず、ということになります。


他の章と同じく、アップグレードする手順や警告の消し方を丁寧に説明しているので、自分のアプリケーションで構築しているテストスイートをアップグレードする際に大変参考になるはずです。


日本語版はRSpec 2.99.rc1向けの内容も追加しています!

運悪く(?)、本書の英語版が改訂された翌日にRSpec自体もアップデートされました。
現時点での最新版は2.99.rc1です。
(rcはRelease Candidateの略で、リリース候補版という意味です。)


英語版はRSpec 2.99.beta2を対象にしています。
日本語版はその翻訳に加え、RSpec 2.99.rc1で発生する警告の対処方法も追加しました。


というわけで、読者のみなさんはrc1にも安心してアップグレードすることができます。


RSpecの警告メッセージも翻訳しました

前述の通り、RSpec 2.99は非推奨APIの使用について警告メッセージを表示します。
本書にも警告メッセージの出力例がたくさん載っているのですが、日本語版ではこの警告も翻訳の対象としました。


たとえばRSpec 2.99ではこんな警告が出てきます。

The semantics of `RSpec::Core::Pending#pending` are changing in RSpec 3. In RSpec 2.x, it caused the example to be skipped. In RSpec 3, the rest of the example will still be run but is expected to fail, and will be marked as a failure (rather than as pending) if the example passes.


・・・って書かれても、すぐにピンと来ないですよね?
ピンと来る人はたぶんEveryday Railsも英語版で読んでるはずです。


というわけで、こんなふうに日本語訳を付けています。

`RSpec::Core::Pending#pending` の振る舞いはRSpec 3で変更されます。RSpec 2.xではpendingするとexampleがスキップされました。RSpec 3では残りのexampleも実行されます。しかし、実行結果は失敗することが期待されます。そして、もしexampleがパスすると(保留中ではなく)失敗したと見なされます。


本文と一緒にRSpecの警告メッセージの内容も確認することで、警告の理由や対処方法がより理解しやすくなるはずです。


謝辞

改訂版のレビューではソニックガーデンの遠藤さん(@ruzia)にお手伝いいただきました。
遠藤さん、どうもありがとうございました!


まとめ

RSpec 3もrc1まで来たので、正式版のリリースもまもなくかと思います。
(RSpecの開発者であるMyron Marstonさんのブログによるとあと2週間ぐらいでリリースされるそうです。)


RSpec 2.99はRSpec 3への橋渡し役として非常に便利なバージョンです。
ぜひ最新版の「Everyday Rails - RSpecによるRailsテスト入門」を読んで、お手持ちのテストスイートをアップグレードしてみてください!


もちろん、RSpec 3正式版がリリースされれば、Everyday Railsの著者であるAaronさんも本書をRSpec 3に対応させることを約束しています。
日本語版もできるだけ早いタイミングでRSpec 3対応版を翻訳していくつもりです。


改訂版は今後も無料でダウンロードできますので、「Everyday Rails - RSpecによるRailsテスト入門」をまだ購入されていない方はこの機会にぜひご購入ください。


Everyday Railsのご購入に関して

購入用のページは以下になります。


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


Leanpubの電子書籍はPDF、Kindle、iPadなど、さまざまなフォーマット/デバイスに対応しています。
DRMフリーなので、PCやスマートフォン、Kindle等々、お好きなデバイスにダウンロードして読むことが可能です。
価格は最低販売価格が$16.00、希望販売価格$20.00となっています。


みなさん、よろしくお願いします!


あわせて読みたい

RSpec初心者必読!「Everyday Rails - RSpecによるRailsテスト入門」を発売しました - give IT a try
最初にベータ版を発売したときのエントリです。
本書の詳しい内容や購入方法などを載せています。


正式版公開のお知らせと幻のあとがき・Everyday Rails - RSpecによるRailsテスト入門 - give IT a try
翻訳の品質を向上させた「正式版」をリリースしたときのエントリです。
電子書籍には載っていない、僕の「幻のあとがき」が読めます。


「カスタマーレビュー」を集めてみました: Everyday Rails - RSpecによるRailsテスト入門 - give IT a try
実際に読んだ人の感想を聞いてみたい!という方はこちらのエントリをどうぞ。