首页 > 解决方案 > 如何测试具有早期回报的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

标签: ruby-on-railsrspechaml

解决方案


推荐阅读