2

我想用 Capybara 在我的 Rails 3.1 应用程序中做简单的请求规范。标准案例都按预期工作,但是当我想测试资产管道生成的 CSS 时,我收到以下错误:

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

我认为问题在于测试环境没有提供完整的服务器,因此也没有提供资产的 Sprockets 中间件。这个问题有解决方案吗?

编辑:现在可能! 我们更新到 Rails 3.2.12 和 Capybara 2.0.2,现在这些资产也可以在功能规范中使用。

4

1 回答 1

4

Phusion 的人在博客中谈到了将资产渲染为字符串的可能性:

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

您也可以在测试中使用它。该解决方案并不理想和/因为 Capybara 不再涉及,但它有助于在我的特定情况下验证 CSS。欢迎使用更好的方法!

于 2011-11-22T12:20:17.117 回答