【问题标题】:Using Capybara matchers in a controller spec with ActionController::TestResponse在具有 ActionController::TestResponse 的控制器规范中使用 Capybara 匹配器
【发布时间】:2011-07-21 10:05:53
【问题描述】:

我在我的 rspec 控制器规范中调用 render_views,这样我就可以直接测试响应的内容,而不是使用单独的视图规范。

果然视图在response.body中渲染并返回。

问题是如何以富有表现力的方式实际解析页面的内容。我正在尝试使用 has_contenthas_field 等 Capybara 匹配器,它们在请求规范中工作正常,但它们不适用于 ActionController::TestResponse 或从 .body 返回的字符串。

用于解析视图的 rspec API 在哪里?

如果我不能检查它们,render_views 有什么意义?

【问题讨论】:

    标签: ruby-on-rails controller rspec capybara


    【解决方案1】:

    如果你想指定渲染视图,我建议在请求/接受/功能规范中这样做,而不是控制器。控制器规范应该更像控制器的单元规范对待。如果您想确保视图渲染没有任何问题,则可以使用 render_views,但在指定该视图方面不应该更深入。

    【讨论】:

    • 是的,Solnic 很好。看起来像在控制器规范中挖掘视图很麻烦,并且显着减慢了测试速度。我将 UI 内容保留在请求规范中,主要使用控制器规范来测试分配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多