我试图通过尝试扩展使用 Rails 3 脚手架生成的默认规范来解决 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 的问题。因为当我提到小丑时,规格失败了。在兔子的一个观点中命名。愚蠢的简单应用程序按预期工作,但规格失败,因为我没有存根(或嘲笑?)小丑正确回应兔子(或者至少这是我认为正在发生的事情)?!?我应该如何添加存根(或嘲笑与兔子相关的小丑?)。
现存的:
#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
...