我試圖鞏固我對rails和BDD工作流程的理解,所以我想通過創建這些迷你博客中的一個來開始小型項目,但是使用rspec。現在我有一個ArticlesController和Article模型,和相關的rspec文件。文章非常簡單,只有title:string和content:text,ArticlesController是RESTful - 雖然我手寫了MCV for Article,但它基本上與我使用腳手架創建它相同。如何爲簡單的PUT更新編寫RSpec測試?
然而,我並不真正知道自己在做什麼,因爲在rspec中爲PUT更新編寫測試。我使用工廠女孩以創建該項目的對象,到目前爲止,我的代碼如下所示:
#factories.rb
FactoryGirl.define do
factory :article do
title "a title"
content "hello world"
end
#articles_controller_spec.rb
before(:each) do
@article = Factory(:article)
end
describe "PUT 'update/:id'" do
it "allows an article to be updated" do
@attr = { :title => "new title", :content => "new content" }
put :update, :id => @article.id, :article => @attr
response.should be_successful
end
end
不過,我不斷收到:
Failures:
1) ArticlesController PUT 'update/:id' allows an article to be updated
Failure/Error: response.should be_successful
expected successful? to return true, got false
我在做什麼錯?我是否正在使用正確的工具?當我運行我的測試服務器時,新建,編輯,銷燬所有工作,因爲我期望他們,所以我猜這是我對RSpec的理解問題。讓我知道如果我錯了 - 謝謝!
您的控制器和模型是什麼樣的? – 2012-02-10 05:54:23