如何在unless语句中存根测试值?

时间:2014-07-24 19:38:09

标签: ruby rspec

所以说例如我有这样的事情:

unless some_variable
  *stuff*
end

有没有办法将some_variable存根以返回false?

1 个答案:

答案 0 :(得分:0)

取决于您获取变量的位置。很难回答,因为你的代码(和变量)悬在真空中。您通常会按照some_variable的定义来控制它们:

def create
  some_variable = MyModel.active?

  unless some_variable
    # ..
  end
end

如果您使用RSpec,您可以:

allow(MyModel).to receive('active?').and_return(false)

在这里,您预先将变量预处理为假。我知道这是一个糟糕的例子,但这只是为了说明一点。

其他情况是您的变量是方法参数。在这种情况下,您只需在传递false和参数时调用该方法。