我使用完全相同的屬性和值在ruby中創建了2個不同的對象。Ruby/Rspec:可以比較兩個對象的內容嗎?
我現在想比較這兩個對象的內容是相同的,但以下比較:
actual.should == expected
actual.should eq(expected)
actual.should (be expected)
失敗:
Diff:
@@ -1,4 +1,4 @@
-#<Station:0x2807628
+#<Station:0x2807610
是否有rspec的/紅寶石任何方式輕鬆實現這一目標?
乾杯!
嗨埃裏克,謝謝你的答案,試圖理解這種方法。爲什麼我們需要重寫'#hash'以及何時會被調用? 我們應該如何實現這種比較,例如'station_one。==(station_two)''? – mickael
@mickael:沒問題。您需要重寫'#hash',以便在您將其用作Hash對象中的鍵時,該對象的行爲繼續有意義。您只需在'it'塊或類似內容中執行'obj1.should == obj2',就可以在'Rspec'中使用重寫的'#=='運算符。 –