Вы неправильно разделяете части теста. Каждый it
вызов на самом деле является новым примером, и состояние сбрасывается до / после каждого.
Что вы должны делать, это:
describe "with invalid params" do
before do
@article = Article.create(valid_params_go_here)
end
it "should find the article and return the object" do
put :update, { :id => @article.id, :article => { :title => "" } }
response.should render_template("edit")
end
end
Делая это таким образом, @article
устанавливается перед рукой (хотя вы могли бы использовать фиктивный, если вы действительно хотели бы) и запрос к действию update
и утверждение что он действительно отображает шаблон edit
, все это происходит в одном примере.