2009-05-25 89 views
0

我有一種感覺,我只是在語法上做了錯誤的事情,但對於Google來說「GET」卻令人驚訝地很難,所以我希望這裏有人可能知道這個答案。在導軌控制器中測試GET

我想從RSpec測試測試一個Rails控制器。我正在關注我在這裏找到的一個示例 - http://www.elevatedrails.com/articles/2007/09/10/testing-controllers-with-rspec/,但我被困在正在測試的方法的實際執行中。

我正在做一個GET請求作爲上面的帖子做POST。我傳遞了2個參數製造商和型號。

我的URL會非常看起來像http://mysite.com/Products/index/Manufacturer/ModelName

我想不通的語法在休息的get請求調用。現在我有

get :index, :manufacturer=>@manufacturer, :modelName=>@modelName 

和我回去

引發ArgumentError在 'ProductController的查找有效的產品應檢索產品' 錯誤的參數數目(0 2)

有什麼想法嗎?

編輯:應當指出的@manufacturer和@modelName在之前定義(:每個)

+0

語法很好。別的東西是不吉利的。發佈更多細節!發佈更多的錯誤回溯行,發佈整個失敗規範,發佈控制器的相關部分,併發布相關路由。 :) – 2009-05-25 17:35:39

回答

1

正如我懷疑這是我作爲綠色軌道編程。

我被定義控制器的方法

def index(manufacturer, modelName) 

當真正我需要使用params哈希表來訪問屬性。然後,我必須定義一個自定義路由,因爲默認情況下,id是預期傳遞給控制器​​方法的唯一參數。

一旦我做到了我改變了規範閱讀

get :index, {:manufacturer=>@manufacturer, :modelName=>@modelName} 

和它的工作。

感謝大家的意見。