gpt4 book ai didi

ruby /Rspec : should be_false vs should == false

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:35 25 4
gpt4 key购买 nike

这是我的代码:

class Dictionary
def entries
@entries ||= {}
end

def add(hash)
if hash.class == Hash
hash.each_pair do |k, v|
entries[k] = v
end
else
makehash = {hash => nil}
self.add(makehash)
end
@entries = entries
end

def keywords
@entries.keys
end

def include?(k)
if @entries == nil
false
elsif self.keywords.include?(k)
true
else
false
end
end
end

这是我正在运行的测试:

require 'dictionary'

describe Dictionary do
before do
@d = Dictionary.new
end

it 'can check whether a given keyword exists' do
@d.include?('fish').should be_false
end

现在,该测试将失败。但是,如果我将其更改为

  it 'can check whether a given keyword exists' do
@d.include?('fish').should == false
end

然后它通过了。

我怎样才能改变我的代码,使 should be_false 而不是 should == false 通过?谢谢。

最佳答案

be_false 匹配虚假值(nilfalse)和be_true 匹配真值(nilfalse 除外)

来自 Rspec > 3.0,

be_false 重命名为 be_falsey

be_true 重命名为 be_truthy

如果你想精确匹配false,你应该使用

obj.should eq false

参见 Documentation有关“be”匹配器的更多信息

关于 ruby /Rspec : should be_false vs should == false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116634/

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