今まで普通にTest::Unitを使っていたんですが、RSpecを使ってみる事に。 一通りの環境は以下を参照に構築。 Railsのテスト環境を改めて- MacOSX / RSpec / ZenTest / Growl RSpecとpluginでいれるRSpecのバージョンが違ってちょと手間取った。 あわせないといけないので気をつけないといけない。 あとなぜか autotestを実行すると script/spec:3:in `require': no such file to load -- spec (LoadError) がでて実行できないのは script/spec ↑のファイルに require 'rubygems' を追加したら動くようになった。 このへん実はいまいちよくわかってない。 何がきもちいいってファイルを変更すると自動的にテストしてくれて、しかも結果がGrowlを通じて通
RSpec on Rails を使って仕様を書いてるときに、コントローラ中で ActiveRecord::RecordInvalid が発生する仕様を書こうとしたのだけどうまくいかない。 it '妥当でない値が Post された場合、new ページが再びレンダリングされる。' do @fa.stub!(:save!).and_raise(ActiveRecord::RecordInvalid) @fa.should_receive(:save!).and_raise(ActiveRecord::RecordInvalid) ... end こんな感じに書くとテスト中に以下のようなエラーがでる。 Mock 'errors' received unexpected message :full_messages with (no args) ./spec/controllers/admin_co
Mock Object Mock Objectの作成 my_mock = mock(<name>) my_mock = mock(<name>, <options>) person = mock('person', :null_object => true) Mockは名前を引数に取る。仕様の検証が終わった際に全てのMockが検証される。 option引数をハッシュで与えることでMockの振る舞いを調整できる。現在、:null_objectのみがサポートされている。:null_object => trueを引数に渡すとMockに対する全てのメソッドがMock自身を返すようになる。 Mockに対してスタブメソッドを定義する person.should_receive(:name) # person.name => nil person.should_not_receive(:name) #
autotest with RSpecはまだ不安定なのかな。3 日坊主日記 - rspec autotestがいつもgreenな件の情報をもとにsvn版をインストールしてみた。 svn checkout http://rspec.rubyforge.org/svn/trunk rspec_trunk cd rspec_trunk/rspec rake package cd pkg sudo gem install rspec-1.1.3.gem これでautotest with RSpecがきちんと動くようにはなった。 autotest with RSpecはlibを$:に加えないのかな? しかし、autotest with RSpecはlibを$:に加えないようだ。 autotest with Test::Unitならばautotestの中で↓のようなコマンドを実行するため、libを$:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く