Я пытаюсь разобраться в невероятно запутанном синтаксисе RSpec, по крайней мере на начальном этапе, пытаясь расширить спецификации по умолчанию, которые генерируются с помощью скаффолдинга Rails 3 ...
У меня есть связанные модели ... очень просто:
#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
...