我正在編寫一個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