当使用DHH的JBuilder测试来自RSPEC控制器测试的JSON响应时,我的response.body始终为“{}”。它在开发/生产模式下工作正常,当我使用to_json方法而不是jbuilder时,我在response.body中获得正确的JSON。为什么JBuilder在测试RSPEC时不返回JSON响应体?
任何人都有线索,为什么我的response.body在测试时总是“{}”?
-----调试
它 “应该返回通过JSON车项目”:重点做
得到:指数:格式=>:JSON
末
( RDB:1)response.body
“{}”
您必须调用'render_views',因为在运行控制器时,默认禁用视图渲染。这加快了测试的运行速度,因为您应该只在控制器测试中测试控制器行为。 – 2014-07-24 22:50:22
如何使用'render_views',ref:https://www.relishapp.com/rspec/rspec-rails/v/3-5/docs/controller-specs/render-views – 2016-09-08 07:34:54
https://github.com/注意:为了鼓励更多的隔离测试,默认情况下,控制器规格中不会呈现视图。如果您正在验证离散视图逻辑,请使用视图规范。如果您正在验证控制器的行为并一起查看,请考虑请求规范。如果您必须验证控制器规范中呈现的视图内容,则可以使用'render_views',但不建议这样做。 – 2016-09-09 08:49:18