2017-02-22 108 views
0

運行一些單元測試,同時學習反應,我看到這個失敗消息「1!= 1」錯誤反應單元測試

expected Map { "items": List [] } to equal Map { "items": List [] } 

我的問題是......什麼?我爲動作和評估使用了fromJS,但這與我正在遵循的教程匹配,似乎在項目的其他地方工作。我在這裏錯過了什麼?

+0

也許比較'Map'裏面的'items'長度? – JorgeObregon

回答

1

看起來你有一個Map類型的對象,並且你正在比較是否兩者在內存中都有相同的引用。由於它們在內存中沒有相同的參考,因爲每個對象都是使用關鍵字new Map(...創建的,所以first Map object with memory reference XYZ!= second Map object with memory reference ABC

我希望它是有道理的。

乾杯,

+0

謝謝,但我沒有用新的Map()創建它們,從JS使用它在幕後?即使如此,我不認爲這是問題,正如我所說,這種模式是從教程中複製並在應用程序的其他地方工作。 –

+0

這就是Immutable所做的。每次修改對象時,都會根據所做的更改創建一個新對象,並在內存中有不同的引用。如果這種模式在其他地方起作用,那麼問題就在代碼中的其他地方,但反映在expect()'調用 – JorgeObregon

0

想通了,我錯過了從我的測試切入點chai.use(chaiImmutable);。豪爾赫的斷言是正確的,但顯然這條線可以對不可變對象進行價值比較。

謝謝!