Rails 3 の scaffolding で生成されるデフォルトの仕様を拡張しようとすることで、RSpec の信じられないほど紛らわしい構文について、少なくとも最初は理解しようとしています...
私はモデルを関連付けています...非常に単純です:
#clown.rb
class Clown < ActiveRecord::Base
has_many :rabbits
end
#rabbit.rb
class Rabbit < ActiveRecord::Base
belongs_to :clown
end
しかし、rabbits_controller.spec.rb に問題があります。つまり、ピエロなどを参照すると仕様が失敗します。うさぎの見解の1つである名前。ばかげた単純なアプリは期待どおりに動作しますが、ウサギから正しく応答するためにピエロをスタブ (または嘲笑) していないため、仕様は失敗します (または、少なくともそれが起こっていると思います)?!? スタブを追加するにはどうすればよいですか (または、ウサギが関連付けられているピエロを嘲笑しますか?)。
既存:
#rabbits.controller.spec.rb
require 'spec_helper'
describe RabbitsController do
def mock_rabbit(stubs={})
(@mock_rabbit ||= mock_model(Rabbit).as_null_object).tap do |rabbit|
rabbit.stub(stubs) unless stubs.empty?
end
end
describe "GET index" do
it "assigns all rabbits as @rabbits" do
Rabbit.stub(:all) { [mock_rabbit] }
get :index
assigns(:rabbits).should eq([mock_rabbit])
end
end
...