Правда, сообщение об ошибке немного неясно.Что касается вашего второго пункта, вам не нужно сохранять объект для генерации URL, помощник будет работать так же хорошо с литеральным значением.
building_path(1) # GET /buildings/1 => BuildingsController#show, params={:id=>"1"}
Так что в примере объект можно заменить налюбое значение:
get :show, :id => "1"
Например, если вы используете rails generate scaffold Article
, RSpec создаст спецификацию, подобную этой:
def mock_article(stubs={})
(@mock_article ||= mock_model(Article).as_null_object).tap do |article|
article.stub(stubs) unless stubs.empty?
end
end
describe "GET show" do
it "assigns the requested article as @article" do
Article.stub(:find).with("37") { mock_article }
get :show, :id => "37"
assigns(:article).should be(mock_article)
end
end
, которая не попадает в базу данных.