rspec

rake specの実行時間を短くするための簡単なお仕事です ※ただし、(何か)に限る

TDDで開発している人の目下の悩みはSlow test問題、すなわちテストの実行時間がかかりすぎて辛い、という問題です。 が、ふと思うところがあって、次のようなタスクを定義していたら、なんということでしょう、劇的に早くなったではありませんか。 namespace…

フック、そんなのもあるのか!! # CukeやRSpecの前後処理フック

Akabane.rbとかやってみたい今日この頃です。土曜の9:00AMからまるます屋とかで。まぁ私自身はだいぶ先まで土日のマイルは枯渇してるんですけど。それはそうと、RSpecの全Example(it)やCucumberのすべてのシナリオで前後処理をしたくなることはありませんか?…

オブジェクト倶楽部2009夏イベントで「プロジェクトに特化した語彙」の話をします

ご無沙汰してます。 考えてみればもう2ヶ月弱書いてなかったんですね。すみません。いろいろありましたが元気です。 久しぶりの日記でアレですが、宣伝です。来る7/7のオブジェクト倶楽部2009夏イベントの若人トラックで話す時間がもらえました(ぎりぎりです…

rspec-rails 1.2.2やCucumber 0.2.0にあげるときの作業メモ

本業があるので手短に。ちょこちょこ変わっていたのではまったポイントを。 rspec-rails 1.2.2 ルーティング周りのexampleの書き方が変わっていた。routes_for(url_params)のほう idなんかもStringで指定する必要あり it "should map #show in rspec-rails 1…

Cucumberがアツい

仕事で作っているRailsアプリにCucumberを突っ込んでみました。これは熱い。いやもう十分、お客さんに見せて分かってもらえる気がします。たぶん。もちろん準備は必要だし、受け入れ仕様をすべてお客さんに書いてもらうというのは難しいですけど*1。とりあえ…

オブラブクリコン 2008

昨日はオブジェクト倶楽部クリスマスイベント2007にスタッフとして参加してきました。 今回は「オブジェクト指向」に回帰する、という会で、いろいろと面白い視点を得ることができました。スピーカーの方々も、本当にありがとうございました。また、highly m…

TDDとテストファースト => TDDのオレオレ定義と5回リロードルール

自分でももやもやしてるのでツッコミ希望。考えだした元記事 : http://techon.nikkeibp.co.jp/article/TOPCOL/20070806/137518/TDDを紹介するときに、「TDDではプロダクトコードの前にテストを書く」という紹介のされかたが多いんですが、これはちょっと誤解…

TimeLineAPI使ってみました / その1 RSpec Formatter

今年の初旬にリリースされて以来、いろいろバージョンアップを重ねている@nifty TimeLineですが、本日のバージョンアップでWebAPIが公開されました。めでたい。 プレスリリース(http://www.nifty.co.jp/cs/07kami/detail/070808003265/1.htm) @niftyウェブサ…

RSpecを0.8.x から 1.0.x にあげる際のポイントメモ

RSpecは長らく0.Xリリースが続いており、APIの変更がなされていました。しかし、2007/5/19に正式りリースである1.0.0が公開され、現在ではそのバージョンが活発にメンテナンスされています。 機能の追加はもちろん、バグ修正も多く行われており、またRSpecの…

RSpen on Railsの効用について(引っ張るだけ)

例によってRails勉強会でRSpecの話をしたのですが、そこで「RSpecによってモデルとビューとコントローラのテストを分離することにより、よりよい設計をドライブするんです!!」などと、ちょっと怪しげなことを口走ってしまいました。 テストを分離するという…

外側から読むRSpec 1.0.x (1)

RSpec 1.0 リリース記念ということで、ちょっと本腰を入れてソースをよんでみました。「外側から読む」というタイトルどおり、specコマンドから起動されるシーケンスに沿って読んでいこうと思います。読む spec はこんなの。 # written in array_spec.rb des…

RSpec 1.0.0

http://rspec.rubyforge.org/きた!詳細はちょうど明日、Rails勉強会があるので、そこで情報交換しようかな、と思ってます。Changelogはこちらから。 http://rubyforge.org/frs/shownotes.php?release_id=11800

RSpec 0.9.x の変更点私的メモ

最近は主に 0.8.x を使っていた 変ったよ〜という話は聞きつつもとりあえず 0.8.x で不便を感じていなかったので(互換性あるし)で流してた Rails勉強会@東京のWikiでYuguiさんが「変わりすぎwwww」 どれどれ、と見てみて噴いた ← いまここ

RSpec で同じ検証を複数のテストデータに対して行いたい

いろんなサンプルに対して「全部のデータ/パターンでちゃんと処理できているかを検証したい」という場合、RSpecだと書き辛いなぁ、と思ったんですが、良く考えれば何のことはない、specファイルも普通のRubyスクリプトなんですよね。というわけで # xxx_spec…

最近の RSpec 情勢

よしみさんの http://d.hatena.ne.jp/walf443/20070324/1174702913 の記事の補足。最近のバージョンでは Matchers を自分で追加して should のあとに書ける語を増やします。というかそれを実現するために should とそれを受けるプロキシに分離し、あの賛否が…

まだ信者になっていない人に向けた RSpec の奨め

某書籍の執筆をちゃんとやろうと再開したのですが、こんなのでリーチしますかね?抜粋。 下にいくほど信仰が高まっていますが、いちおう現世利益を前面に出してみました。校正前とはいえ元原稿の抜粋なので、レビュー&突っ込み(これは嬉しいの?とか)大歓迎…

コントローラのテストでフィルタをスキップ

Yugui さんの「RSpecにおけるコンテキストをまたぐ共通部分」が面白いので私も Tips を。コントローラにフィルタ*1をもりもり書いていくと、テストする場合に事前準備がすごくめんどくさくなる(ユーザ Foo でログインしてなきゃイケナイ、とかなんとか)んで…

特殊な例外クラスを設計したい場合

http://rucila.s43.xrea.com/memo/?date=20070206#p02 ある箇所で、ある例外があがること と その例外の状態が xxx であること はそれぞれ別の検査項目だったりするかもしれないので、そういうときはcontextを分けるのが良いんじゃないかなぁ、と思いました。…

RSpec での assert_select

私的メモ。 Rails 1.2.x で導入された assert_select は response に含まれるエレメントを CSS 形式で指定できるというすぐれもの。 で、RSpec on Rails からもまだ API が不安定*1ながらも使えるんですが、その API がまた変わりました。(r1399:r1419 のど…

paginate したときの view の spec

コラボレータが多くて fake するのがたいへんだったけど、下記でいけましたというメモ。 無理矢理感が高め。 setup do controller = ApplicationController.new controller.stub!(:params).and_return(:page => 1) assigns[:user_pages], assigns[:users] = …

RSpec の cheat sheet とチュートリアル

どちらも Dave Astel による。英語ですが、それぞれお薦めです。 RSpec のcheat sheet http://blog.daveastels.com/articles/2006/09/09/rspec-cheat-sheet 今日見付けたんですが、基本的な使いかたが乗ってるのでいい感じです。先日の私のエントリもあわせ…

spec を書くときに float の誤差を無視したりしなかったり

先週気づいていればもっと楽にできたのに。軽くはまったところの解決法はすでに本家ドキュメントにありましたよ。すみません>ボス context "循環小数 (1 / 3.0) のspecを書く場合" do specify "0.33 に近く、誤差は 0.004 以下であること" do ( 1 / 3.0 ).s…

RSpec を使うための4つの語彙

年末年始にスライドを作ろうと思って挫折しました。RSpec のテストコードは見慣れない "should" なんかが出てきて難しそうに見えますが、実は覚えなきゃいけないのは 4つ程の語彙だけです。*1 Object#should_xxx [args] Object#should_have(n).items Object#…

RSpec 用のマクロ

脊髄反射的に作成。 function! Rspec () let rails_spec_pat = '\

黄色信号の話

まずはこちらを。 http://idm.s9.xrea.com/ratio/2006/11/21/000549.htmlなんかすごくすっきりしました。Development を Drive するためのテストについてはすっかり同意。ぐぅの音もでないくらい。あと、Rails勉強会で出た黄色の話をちょっと捕捉すると、開…

キーワード作ってみた

RSpec に付いて話されているエントリを捕捉したくなったのではてなキーワードを作ってみました。なるほどこういうときに使えばいいのか>キーワード作成。 まだまだたいしたことは書いてありませんが、そだてたってください。http://d.hatena.ne.jp/keyword/R…