30

在使用 DHH 的 JBuilder 测试来自 RSPEC 控制器测试的 JSON 响应时,我的 response.body 始终为“{}”。它在开发/生产模式下运行良好,当我使用 to_json 方法而不是 jbuilder 时,我在 response.body 中得到了正确的 JSON。

任何人都知道为什么我的 response.body 在测试时总是“{}”?

----- 调试器

它“应该通过 JSON 返回购物车项目”,:focus 做

获取 :index, :format => :json
结束

(rdb:1) response.body

“{}”

4

2 回答 2

65

对于任何有同样问题的人。我已经想通了。

您必须render_views在您正在执行的控制器测试中调用。如果你这样做,你应该会看到一个response.body包含你的 JSON 的 :)

于 2012-04-06T03:25:33.027 回答
26

您可以从https://github.com/rails/jbuilder/issues/32找到解决方案

所以在 rspec/spec_helper.rb

RSpec.configure do |config|
  # https://github.com/rails/jbuilder/issues/32
  config.render_views = true
end

添加上述选项后,JSON 结果将通过 jbuilder 渲染器显示

于 2012-09-03T06:35:48.373 回答