【发布时间】:2014-08-04 19:13:21
【问题描述】:
这是我的代码:
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?谢谢。
【问题讨论】:
-
你试过
should be_false吗?另外你可能应该使用@d.should include 'fish' -
@BroiSatse 我很抱歉。
should be_false是我在原帖中的意思。我已经编辑过了。我想让should be_false工作。 -
@arealhumanbean - 你使用的是什么 rspec 版本?
-
如果你使用
rspec > 3.0,be_false应该改为be_falsey