【问题标题】:Testing the asset pipeline with Capybara使用 Capybara 测试资产管道
【发布时间】:2011-11-16 17:45:22
【问题描述】:

我想在我的 Rails 3.1 应用程序中使用 Capybara 执行简单的请求规范。标准案例都按预期工作,但是当我想测试资产管道生成的 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,现在这些资产也可以在功能规范中使用。

【问题讨论】:

  • 我不这么认为。据我所知,它会在特定测试端口上生成一个新服务器(请参阅配置 Capybara.server_port)

标签: testing ruby-on-rails-3.2 ruby-on-rails-3.1 capybara asset-pipeline


【解决方案1】:

Phusion 的人在博客上写了render an asset to a string 的可能性:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多