我使用rSpec的控制器API進行大量測試。現在我正在使用中間件身份驗證解決方案(Warden),並且在運行規格時,中間件添加的代理不在那裏,所有身份驗證測試都在向各地投擲NilPointerException
。機架rSpec控制器機架中間件測試問題
看起來rSpec並沒有將中間件添加到最終的應用程序中,我想知道是否有辦法讓補丁rSpec爲了實現目標。
我已經用黃瓜測試了整個事情,但是這是舊認證版本的重構,並且有幾個Controller測試依賴於認證邏輯才能工作。
在此先感謝。
我使用rSpec的控制器API進行大量測試。現在我正在使用中間件身份驗證解決方案(Warden),並且在運行規格時,中間件添加的代理不在那裏,所有身份驗證測試都在向各地投擲NilPointerException
。機架rSpec控制器機架中間件測試問題
看起來rSpec並沒有將中間件添加到最終的應用程序中,我想知道是否有辦法讓補丁rSpec爲了實現目標。
我已經用黃瓜測試了整個事情,但是這是舊認證版本的重構,並且有幾個Controller測試依賴於認證邏輯才能工作。
在此先感謝。
看來rSpec針對Rails 2.x的控制器API並不是真的在控制器調用中使用Rack,所以這是不可能的。然而,David Chelimsky指出了一個(未經證實的)解決方案。我會把他給我的回答放在rSpec用戶郵件列表中。
控制器規格不通過導軌2中的機架,所以不是真的。
有一些集成規格,它們包含軌道集成測試API ,因此您可以在軌道集成測試中執行任何操作。只需要 將文件移動到規範/集成,將請求從 「get:index」轉換爲「get'path/to/index'」,您應該幾乎可以使用 。
讓我們知道如何解決。
乾杯, 大衛
我結束了嘲諷的ApplicationController上的身份驗證邏輯方法做虛擬的東西,以便使我的規格運行,我有建議指出,由大衛這樣做過,所以我不知道這項工作。無論哪種方式,我希望它可以幫助其他開發者在相同的情況下。
這個職位上一個相關的問題可能會提供一些線索,並最終導致一個解決方案,在一個RSpec配置中指定中間件組件(我希望!)
https://rspec.lighthouseapp.com/projects/5645/tickets/963-request-is-nil#ticket-963-14
它並沒有真正與幫助你的特定的Rails2問題,但是這個查詢成爲'rspec中間件'的首選,所以希望能夠幫助其他人在嘗試Rails3測試版時遇到問題。