我正在编写一个ruby教程,并且遇到了这个问题。我需要写一个方法来通过这个测试。将条目添加到散列
it 'can add whole entries with keyword and definition' do
@d.add('fish' => 'aquatic animal')
@d.entries.should == {'fish' => 'aquatic animal'}
@d.keywords.should == ['fish']
end
你如何添加一个键值对哈希如果你通过'fish' => 'aquatic animal'
而不是{'fish' => 'aquatic animal'}
?这对没有{}
不是一个对象,所以我不能将它分配给一个变量或使用任何方法来操纵它。
UPDATE:
我应该有一个类字典,其具有一个实例变量@entries
(初始化为空的散列)和方法Dictionary#add
这将散列增加@entries
。
所以我做了我这样的方法。 def add(hash) @ entries.merge!哈希 结束 但显然这不是我的空哈希与我需要添加的哈希合并。
在测试中,@d
是Dictionary的一个实例。
解决
对不起你们......我刚刚发现我犯了这个错误忘记当我合并使用爆炸!
。感谢您的帮助!
是什么测试框架?什么是“@ d”? – sawa 2015-03-25 03:57:44
*没有{}的对不是一个对象*事实上,它是一个对象。在这种情况下,Ruby只是简单地让你省略大括号,但它的哈希值完全相同。你有什么问题? – 2015-03-25 04:08:10