RSpec を使い始める人が読むべき N 個のドキュメント

こんにちは、ほりいです。Asset Pipeline に感銘を受けている今日この頃です。

今日は社内で RSpec をこれから勉強したいんだけど検索してもよくわからない!と質問を受けたので、読むべきエントリをまとめてみました。

# 現状ぐぐると RSpec.info がまず出てくるけどもう更新されてないっぽいので優しくないんですよね……

h2. これは読んでおこう!

h3. スはスペックのス

* “スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)”:http://jp.rubyist.net/magazine/?0021-Rspec
* “スはスペックのス 【第 2 回】 RSpec on Rails (コントローラとビュー編)”:http://jp.rubyist.net/magazine/?0023-Rspec

内容は若干古いのですが、概要をつかむならこれが一番まとまっていると思います。

h3. RSpec

* “RSpec”:http://kerryb.github.com/iprug-rspec-presentation/
** “http://d.hatena.ne.jp/takihiro/20110110/1294645623”:http://d.hatena.ne.jp/takihiro/20110110/1294645623
** “http://blog.twiwt.org/e/4dd773”:http://blog.twiwt.org/e/4dd773

「RSpec」という RSpec2 の機能についてのプレゼン(とその反応など)。必読すぎです!

反応については自分のブックマークに入ってたものだけなので、読むべき感想は探せばもっとあると思います。

h3. RSpec の入門とその一歩先へ – t-wadaの日記

* “第1イテレーション”:http://d.hatena.ne.jp/t-wada/20100228/p1
* “第2イテレーション”:http://d.hatena.ne.jp/t-wada/20100306/p1
* “第3イテレーション”:http://d.hatena.ne.jp/t-wada/20100801/rspec_3rd_iter

t-wada さんによる実践。

h3. 改めて学ぶ RSpec

* “改めて学ぶ RSpec”:http://jp.rubyist.net/magazine/?0035-RSpecInPractice

今週出たばかりの “るびま0035号”:http://jp.rubyist.net/magazine/?0035 に収録の、最新の日本語による記事。前述の RSpec あたりを把握した次にどうぞ。

h3. Spork 関連

* “spork でサクサク RSpec on Rails3”:http://blog.twiwt.org/e/cafcfe

Spork は RSpec が Rails をロードする時間を省略してくれるので、何度も Spec を回すときには必須ですね。

h2. 公式ドキュメント

* “RSpec Documentation”:https://www.relishapp.com/rspec

2.x系のドキュメント(英語)です。内容のほとんどは cucumber の記述からドキュメント化されたものです。

h2. ソース

* “http://github.com/rspec/rspec”:http://github.com/rspec/rspec
* “http://github.com/rspec/rspec-core”:http://github.com/rspec/rspec-core
* “http://github.com/rspec/rspec-expectations”:http://github.com/rspec/rspec-expectations
* “http://github.com/rspec/rspec-mocks”:http://github.com/rspec/rspec-mocks

ソースを読めばどんなマッチャが実装されているかなど確実に分かりますよ!

h2. おまけ: RSpec 以外

ついでに RSpec 以外の テストフレームワークも話題になったのでそれも紹介。詳しくは “Testing frameworks”:http://ruby-toolbox.com/categories/testing_frameworks.html にたくさんありますね。

h3. Test::Unit

* “DHH Offended By RSpec, Says Test::Unit Is Just Great”:http://www.rubyinside.com/dhh-offended-by-rspec-debate-4610.html
* “https://gist.github.com/893027”:https://gist.github.com/893027

David Heinemeier Hansson さんは頑固な Test::Unit 派

h3. Minitest

* “http://docs.seattlerb.org/minitest/”:http://docs.seattlerb.org/minitest/

実は Ruby 1.9.2 同梱の Minitest でも RSpec-ish なことができます。

h3. contest

* “https://github.com/citrusbyte/contest”:https://github.com/citrusbyte/contest

Test::Unit でもコンテクストをネストしたい、って人は contest

h3. riot

* “https://github.com/thumblemonks/riot”:https://github.com/thumblemonks/riot

Test::Unit とも RSpec ともちょっと違う。速いらしい。

h3. bacon

* “https://github.com/chneukirchen/bacon”:https://github.com/chneukirchen/bacon

ミニ RSpec クローン。Rack で使われてたはずだけど、もう更新されてない?

h2. まとめ

RSpec については実例がまだまだ足りない気がするので、参考になりそうなものはどんどん公開していきたいですね。

「この URL も紹介すべき!」というものがあれば Twitter, ぶくま, 風の便りなど何らかの手段でお知らせくださればもしかしたら追記します。では。