嘿,所以我寫了一個新的功能,並通過Spork跑我的測試西裝,我有一個失敗的視圖測試。這將是我第一次看視圖測試,所以它有點令人困惑。Rspec路由錯誤,當重新ajax
我收到以下錯誤
ActionView::Template::Error:
No route matches {:controller=>"employment_equity", :action=>"update_percentage_of_black_youth", :method=>:put, :scorecard_id=>123456, :id=>nil}
的觀點是測試看起來像這樣(我用的青菜和HAML使#不是註釋它引用的ID標籤)
- if current_scorecard.base_charter_is? :transport_public_sector
.left
#percentage_of_employees_that_are_black_youth_input= f.field :percentage_of_employees_that_are_black_youth, :class => :percentage
.left
.auto_sum_link= link_to('Percentage from Details', update_percentage_of_black_youth_path(current_scorecard.id, @employment_equity.id), :method => :put, :remote => true)
正如你所看到的,我將:remote_true
添加到我的link_to
,這樣我就可以得到ajax來填寫那個提交的文件。問題是它抱怨沒有路線。
當我有它!
match '/scorecards/:scorecard_id/employment_equity/:id/update_percentage_of_black_youth', :controller => 'employment_equity', :action => 'update_percentage_of_black_youth', :method => :put, :as => 'update_percentage_of_black_youth'
,然後打在外地基本上填滿了新的價值我在模型
$("#percentage_of_employees_that_are_black_youth_input input").val(<%= @employment_equity.percentage_of_employees_that_are_black_youth %>).effect("highlight", {color: "#C3EC97"}, 3000);
這在我的開發環境的所有作品制定出Ajax和我的單元測試所有的工作都無法弄清楚爲什麼它不會呈現因爲傳遞給ajax的鏈接?任何一個發現了類似的問題?
我不知道嗎?我們正在使用RSpec和Spork? – TheLegend 2013-03-18 12:06:47
是的,RSpec和Spork不會爲您提供測試ajaxy函數的能力。如果你想測試這部分的應用程序 – muttonlamb 2013-03-18 12:08:04
感謝您的信息,你一定想看看硒或茉莉花!我不認爲我們的任何js都經過測試,我不知道有測試它的軌道方式。你搖滾襪子 – TheLegend 2013-03-18 12:13:06