【发布时间】:2017-05-28 05:16:28
【问题描述】:
我正在尝试使用 rspec 在 Ruby 中实现一个集合数据结构。我有一个测试似乎没有通过以下代码:
def add(element)
if @set_data.include?(element)
print "This element is already in the set!"
else
@set_data += [element]
end
end
这是对它的测试:
it 'does not add an element if the element is already in the set' do
set = SetDataStructure.new([1,2,3,4,5])
set.add(4)
expect(set).to eq("This element is already in the set!")
end
运行测试的输出:
......这个元素已经在集合中!F.
失败:
1) 如果元素已经在集合中,SetDataStructure 不会添加元素 失败/错误:expect(set.to_a).to eq("这个元素已经在集合中!")
expected: "This element is already in the set!"
got: [1, 2, 3, 4, 5]
(compared using ==)
# ./spec/set_data_structure_spec.rb:39:in `block (2 levels) in <top (required)>'
在 0.00348 秒内完成 8 个例子,1 个失败
失败的例子:
rspec ./spec/set_data_structure_spec.rb:36 # 如果元素已经在集合中,SetDataStructure 不添加元素
我的GitHub 上也发布了代码。
如果有人能启发我,我将不胜感激!
【问题讨论】: