为什么JBuilder在测试RSPEC时没有在JSON中返回响应体

时间:2012-04-01 16:10:39

标签: ruby-on-rails json rspec jbuilder

使用DHH的JBuilder测试来自RSPEC控制器测试的JSON响应时,我的response.body总是“{}”。它在开发/生产模式下工作正常。当我使用to_json方法而不是jbuilder时,我在response.body中获得了适当的JSON。

任何人都有一个线索,为什么我的response.body在测试时总是“{}”?

-----调试器

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

get:index,:format => :JSON

(rdb:1)response.body

“{}”

2 个答案:

答案 0 :(得分:60)

对于遇到同样问题的任何人。我已经弄清楚了。

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

答案 1 :(得分:25)

您可以从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渲染器显示