2

我想在使用Capybara的Rails 3.1應用程序中執行簡單的請求規格。該標準的情況下,預期所有的工作,但是當我想測試由資產管線產生的CSS,我收到以下錯誤:使用Capybara測試資產管道

Failure/Error: visit '/assets/main.css' 
ActionController::RoutingError: 
    No route matches [GET] "/assets/main.css" 

我認爲這個問題是測試環境並沒有提供完整的服務器和所以也沒有提供資產的Sprockets中間件。 有沒有解決這個問題的方法?

編輯:現在可能! 我們更新到Rails 3.2.12和Capybara 2.0.2,現在資產也可以在功能規格中找到。

+0

我不這麼認爲。據我所知它產生了一個特定測試端口上的新服務器(請參閱配置Capybara.server_port) – phoet

回答

4

的傢伙的Phusion博客上講述的可能性render an asset to a string

MyApp::Application.assets.find_asset('main.css').body 

您也可以在測試中使用。該解決方案並不理想,因爲Capybara不再涉及,但它在我的具體情況下有助於驗證CSS。歡迎更好的方法!