问题描述
我有一个haml部分,该部分只应为某些人渲染,因此它在开始行有- return unless
:
- return unless user.is_allowed_to_see_this?
stuff here for only them to see
在应用程序中效果很好,但是在测试视图时,rspec render
帮助程序在尝试渲染部分视图而不是返回空/无时会抛出一个no implicit conversion of nil into String
。因此,要测试部分是否正常工作,测试需要看起来像这样:
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...
更改为- if...
会使render
调用返回空字符串而不是错误。也许这就是解决办法?但是我想找到一种方法来保持早日回报,我觉得这很容易理解,因为else
不可能考虑。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)