1
使用CouchDB(couchrest_model)作爲文檔數據庫,我有一個正常的Rails項目(沒有活動記錄)。使用RSpec在CouchRest模型中測試Rails的錯誤使用RSpec的測試錯誤
我沒有設置RSpec和一個基本的腳手架'項目'。
當我測試了以下規格:
before(:each) do
@project = Project.create! valid_attributes
end
describe "GET index" do
it "assigns all projects as @projects" do
get :index
assigns(:projects).should eq([@project])
end
end
我收到以下錯誤:
Failure/Error: assigns(:projects).should eq([@project])
expected [{"name"=>"test",
"updated_at"=>2011-05-28 11:24:04 -0500,
"created_at"=>2011-05-28 11:24:04 -0500,
"couchrest-type"=>"Project",
"_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
"_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4"}]
got [{"name"=>"test",
"updated_at"=>2011-05-28 11:24:04 -0500,
"created_at"=>2011-05-28 11:24:04 -0500,
"_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
"_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4",
"couchrest-type"=>"Project"}]
看來,唯一的區別是在哈希元素的順序:
(compared using ==)
Diff:
@@ -1,7 +1,7 @@
[{"name"=>"test",
"updated_at"=>2011-05-28 11:24:04 -0500,
"created_at"=>2011-05-28 11:24:04 -0500,
- "couchrest-type"=>"Project",
"_id"=>"709edbfaafb24fa1eff7d5f3966b2bda",
- "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4"}]
+ "_rev"=>"1-ae3f6356f8e32f6006337a4f3759bca4",
+ "couchrest-type"=>"Project"}]
我知道'rspec'和'rspec-rails'只能用於Active Record,但它不應該如此對於其他ORM不同。我錯過了什麼嗎?
哪個是修復此測試的最佳方法?
我得到了同樣的錯誤... – Christian 2011-05-30 18:08:10
您在使用Ruby 1.9的?如果是這樣,你可以在1.8版本中試用嗎? – 2011-05-30 18:41:31
是的,我使用紅寶石1.9.2。我嘗試了1.8.7,它沒有工作,同樣的錯誤。我也使用rails 3.0.7,rspec 2.6.0,rspec-rails 2.6.1。我認爲這是RSpec的'assigns'的一個問題 – Christian 2011-05-30 20:46:24