使用DHH的JBuilder测试来自RSPEC控制器测试的JSON响应时,我的response.body总是“{}”。它在开发/生产模式下工作正常。当我使用to_json方法而不是jbuilder时,我在response.body中获得了适当的JSON。
任何人都有一个线索,为什么我的response.body在测试时总是“{}”?
-----调试器
它“应该通过JSON返回购物车项目”,:焦点做
get:index,:format => :JSON
端
(rdb:1)response.body
“{}”
答案 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渲染器显示