2010-02-09 92 views
2

我使用rSpec的控制器API進行大量測試。現在我正在使用中間件身份驗證解決方案(Warden),並且在運行規格時,中間件添加的代理不在那裏,所有身份驗證測試都在向各地投擲NilPointerException機架rSpec控制器機架中間件測試問題

看起來rSpec並沒有將中間件添加到最終的應用程序中,我想知道是否有辦法讓補丁rSpec爲了實現目標。

我已經用黃瓜測試了整個事情,但是這是舊認證版本的重構,並且有幾個Controller測試依賴於認證邏輯才能工作。

在此先感謝。

回答

3

看來rSpec針對Rails 2.x的控制器API並不是真的在控制器調用中使用Rack,所以這是不可能的。然而,David Chelimsky指出了一個(未經證實的)解決方案。我會把他給我的回答放在rSpec用戶郵件列表中。

控制器規格不通過導軌2中的機架,所以不是真的。

有一些集成規格,它們包含軌道集成測試API ,因此您可以在軌道集成測試中執行任何操作。只需要 將文件移動到規範/集成,將請求從 「get:index」轉換爲「get'path/to/index'」,您應該幾乎可以使用 。

讓我們知道如何解決。

乾杯, 大衛

我結束了嘲諷的ApplicationController上的身份驗證邏輯方法做虛擬的東西,以便使我的規格運行,我有建議指出,由大衛這樣做過,所以我不知道這項工作。無論哪種方式,我希望它可以幫助其他開發者在相同的情況下。