2014.05.23 追記: 移行の方法は電子書籍でも説明されています
僕が翻訳を担当している「Everyday Rails - RSpecによるRailsテスト入門」という電子書籍でもRSpec 3(厳密にはRSpec 2.99)へ移行する方法を説明しています。
詳しくはこちらのエントリをご覧ください。
RSpec 3 へバージョンアップする準備を始めよう!「Everyday Rails - RSpecによるRailsテスト入門」の改訂版をリリースしました - give IT a try
はじめに
昨日(2014年3月29日)、Ruby関西主催の「Ruby/Rails勉強会@関西 60th」で「How to upgrade your Rails application to RSpec 3」というタイトルの発表をしてきました。
カッコつけて横文字で書いていますが、簡単に言えば「RSpec 2で書いたRailsのテストをRSpec 3に移行させる方法」です。
今回のエントリではこの発表に関する説明と勉強会の感想等を書いてみようと思います。
Photo: @spring_aki
発表の内容
この発表では「Everyday Rails - RSpecによるRailsテスト入門」のサンプルアプリを題材にして、サンプルアプリに最初から付いてくるRSpecのテストをRSpec 3に移行させました。
移行の手順はその場でテストを実行したり、コードを書き換えたりしながらライブコーディングっぽく説明していきました。
なので発表のスライドだけ見ても、ちょっとピンと来ないかもです。
とりあえず、GitHubに同じ手順を再現したブランチがあるので、そちらのコミットログを見てもらうと多少わかりやすいかもしれません。
発表に関する補足や余談等
- 発表でも使用した超便利ツール、transpecの作者であるYuji Nakayamaさん(@nkym37)がちょうどこのイベントに参加されていました。アイコンのイメージからはほど遠い、シャープなイメージのイケメンさんだったのが印象的でしたw
- そのNakayamaさんからは発表中にいくつかの指摘事項をもらっています。
guard-rspec を rspec-rails 2.99/3.0 beta と一緒に使う場合はこのワークアラウンドが有効かもしれません #rubykansai https://t.co/3n1kP4ypJr
— Yuji Nakayama (@nkym37) March 29, 2014
はい、実はGuard周りの移行方法は詰めが甘いまま発表してしまいました。。。
Nakayamaさんが紹介されているリンクに気付いたのが当日の朝で、発表までにスライドや発表内容を修正しようかなとも思ったのですが準備が間に合わず、そのまま発表することになってしまいました。
どうもすみません。(><)
rspec-rails 2.99 が have(n).items マッチャに警告を出すのはバグのような気も。rspec-rails 3.0 は collection-matchers を標準で使うはずなので。 #rubykansai
— Yuji Nakayama (@nkym37) March 29, 2014
この PR, rspec-rails 2.99.0 beta2 にまだ入ってないかも https://t.co/diHf2hk8xh
— Yuji Nakayama (@nkym37) March 29, 2014
お、このあたりの内容はノーチェックでした。
あとでじっくり調べてみます!
- 発表で使用する画面(?)はよくある「プロジェクタ + スクリーン」だと思っていたら、大型液晶ディスプレイでした。思った以上に解像度が高く、RubyMineのフォントサイズを最大にしてもあまり大きな字になりませんでした。たぶん、後ろの席の方はライブコーディング中の作業がほとんど見えなかったかもしれません。どうもすいませんでした。
- Q&Aで挙がった質問: 依存するgemを最新版にしたらそのgemに起因するRSpecの警告が消える、っていうのはどうやって調べたんですか?野生の勘?
- A. gemのコードを読みました。勘じゃないです。警告の原因となっているgemの場所を確認し、その場所をGitHubで開いてどのバージョンで修正されているか確認しました。結構地道な作業でした・・・。
勉強会の感想
実はRuby関西の勉強会に参加するのはこれが初めてでした。
この勉強会ではキャンセル待ちがたくさん出ていて、毎回こんなに人気なんだーと思っていましたが、こんな状況になってきたのはここ最近の話みたいです。
関西方面のRubyコミュニティもだんだんと活発化してきたのかもしれません。
実際、最近では僕たちがやっている西脇.rb&東灘.rbをはじめ、Kyoto.rb、Minami.rb(大阪)、Shinosaka.rb、Wakayama.rbなど、関西圏のRubyコミュニティがたくさん増えてきているみたいです。
何にせよ、たいへん嬉しい話です。
あと、先ほど紹介したYuji Nakayamaさんのような「Rubyのすごい人たち」が参加したりしているのも魅力的です。
どうしても「Rubyのすごい人 = 東京周辺に在住」のイメージが強いのですが、関西にだってそれなりにそういう人はいるんだ、というのが肌で感じられるのがいいですね。
こういう実感は家の外の勉強会に出てみないとわからないものです。
あ、そういえば某スタッフの方から「Everyday Rails - RSpecによるRailsテスト入門を買ったんで、サインください!」って言われました。
最初はネタかと思ったんですが、最近はタブレットを使ってPDFに手書き文字が書き込めるんですね。サインを書いたのは人生初だったかもしれませんw
懇親会の感想
せっかくRuby関西の勉強会に初参加したので、懇親会にも参加してみることにしました。
初対面の人としゃべるのはあまり得意じゃないので、懇親会は毎回結構不安な気持ちになるのですが、みんな技術好きなのでマニアックな技術ネタになるとやはり自然と盛り上がりますね。
この懇親会でもVimのショートカットがどうとか、Rubyっぽい書き方、Rubyっぽくいな書き方って何だ!?みたいな話題で盛り上がっていましたw
あと、当日発表していた学生さんが実は西脇高校の出身だったとか、懇親会で同じテーブルに座った方が実は僕の前職の会社へ仕事で何度か足を運んでいるとか、「へ~、世の中せまいなあ!」と思うような話が聞けたのも個人的な収穫でした。
まとめ
というわけで今回は「Ruby/Rails勉強会@関西 60th」の発表内容や、勉強会の感想等を書いてみました。
最後になりますが、この勉強会を運営してくれたスタッフのみなさん、会場提供をしてくださったANNAI LLCさん、どうもありがとうございました!
また遊びにいきますので、その際はよろしくお願いします。
お知らせ その1:「Everyday Rails - RSpecによるRailsテスト入門」はPDF、Kindle、iBooks等で読めます
今回の発表でも使用した初心者向けのRSpec本です。
これを読めば初心者でも中級者レベルまでステップアップすることができます!
また、現行版はRSpec 2.14で書かれていますが、RSpec 3が正式リリースされ次第RSpec 3対応版に無料アップデートする予定です。
お知らせ その2: 西脇.rb & 東灘.rbも毎月勉強会をやっています!
僕とAkiさん(@spring_aki)で毎月主催している西脇.rb & 東灘.rbの合同勉強会もよろしくお願いします。
神戸ぐらいなら足を運べそう、という方はぜひDoorkeeperのサイトからメンバー登録してください!
http://nishiwaki-higashinadarb.doorkeeper.jp/
ちなみに次回2014年4月5日の勉強会はすでに満席となっています。
興味のある方は5月以降の勉強会を待っていてください。