所以我決定調查Rails測試的狀態。在閱讀了一些關於如何討論Rails的測試文檔是否殘暴的接受答案之後,我開始同意。到目前爲止,我顯然不在理解Rails測試的人羣中 - 即使我理解了框架,或者我也這麼認爲。Shoulda:測試控制器過濾器
我讀過Shoulda是一個很好的插件,所以我使用它。我的第一個測試:「確保方法需要一個ID參數」...確定這是有道理的;我想確保我的控制器上的before_filter:validate_id實際工作。這是測試我的索引的GET按其應有的方式工作所需的3中的第1步。失敗!顯然,測試環境中運行不同於正常的Rails堆棧:
...
lib/action_controller/base.rb:524:in `process_without_filters'
...
檢查,我到處都可以導致幾乎沒有任何信息,包括過濾器時的ActionController :: TestCase的用途得到{}。我在哪裏加入「Rails測試人員俱樂部」,這樣我可以弄清楚這一點?
context "GET :index requires id" do
setup {
get :index
}
should_redirect_to('/') { }
end
我的過濾器檢測ID是否存在並且有效。如果不是,則重定向到「/」。我確信這是問題,因爲我運行測試時得到的錯誤是id/filter生成的對象爲nil的結果。 – Bill 2009-02-19 23:40:55