ruby-on-rails - 如何测试具有早期回报的haml部分?
问题描述
我有一个应该只为某些人呈现的 haml 部分,所以它- return unless
在开头行有一个:
- return unless user.is_allowed_to_see_this?
stuff here for only them to see
在应用程序中工作得很好,但是在测试视图时,rspecrender
助手no implicit conversion of nil into String
在尝试渲染部分而不是返回空/nil 时会抛出 a。因此,要测试部分是否正常工作,测试需要如下所示:
it 'does not show to unallowed user' do
user = users(:not_allowed)
expect do
render('the/haml_partial', user: user)
end.to raise_error(TypeError)
end
哪一种感觉像是在测试错误的东西?我觉得期望应该是
expect(rendered).to be_empty
我已经研究了一段时间的文档,但没有找到任何似乎对此有用的东西。更改- return unless...
to- if...
会使render
调用返回空字符串而不是错误。也许这就是解决办法?但我想找到一种方法来保持提前返回,我觉得更容易理解其意图,因为没有考虑的可能性else
。
解决方案
推荐阅读
- garbage-collection - 读/写障碍如何真正应用于垃圾收集代码?
- c# - C# 等价于 C++ Vector< Vector
> 巨型维克; - database - 如何将相同的 user_id 数据与 PostgreSQL 查询结合起来
- javascript - 如何在 NodeJS 中使用 fetch 获取 API 数据
- sql - 尝试在 Shiny 应用程序中显示来自 SQL Server 查询的数据框时出现问题
- c - 将双指针文件作为函数参数传递有什么意义?提供的示例
- php - isset($array[$key]) 没有响应正确的值
- amazon-web-services - 通过 AWS CLI 创建集群时捕获主公共 DNS
- c# - 在 aspx 页面中无法识别服务器端对象
- flutter - SingleChildScrollView 仍然会导致屏幕溢出