gpt4 book ai didi

ruby-on-rails - Rspec 测试不渲染布局

转载 作者:行者123 更新时间:2023-12-04 02:17:22 27 4
gpt4 key购买 nike

我可以测试我的 Controller 以呈现特定的布局

expect { get :index }.to render_template(layout: 'my_layout')

但是如何测试 Controller 以呈现 NO 布局?

以下第一个期望通过, 但要小心 : 第二个期望也通过了! (测试相同的代码)
expect { get :index }.to render_template(layout: false)
expect { get :index }.to render_template(layout: true)

2008 年 11 月,@david-chelimsky 说:

One way I've handled this successfully is to integrate_views for this one example (in its own group) and specify that html elements from the layout are not present in the form. It's a brittle example, but it's only one.



我不想检查渲染的 View ,但到目前为止我没有找到任何更好的解决方案。

有人有好的方法吗?

最佳答案

虽然不是一个漂亮的类轮(你总是可以添加一个辅助方法),但我发现你可以这样做:

get :index
@templates.keys.should include(nil)

我对此进行了测试,它仅在我设置 layout false 时才有效。 .基于 implementation of assert_template它将一些信息收集到实例变量中。相关的是 @templates@layouts - 每个都是由与渲染次数相对应的字符串键控的哈希。
@templates将包含用于您的操作的模板(例如 "users/show" )但 @layouts只会列出布局。如果没有使用布局,它看起来像 {nil=>1} .这似乎是您唯一可以利用的东西。

所以也许制作一个辅助方法或 custom matcher 可能会很好。去做这个。

关于ruby-on-rails - Rspec 测试不渲染布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16592551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com