運行一些單元測試,同時學習反應,我看到這個失敗消息「1!= 1」錯誤反應單元測試
expected Map { "items": List [] } to equal Map { "items": List [] }
我的問題是......什麼?我爲動作和評估使用了fromJS
,但這與我正在遵循的教程匹配,似乎在項目的其他地方工作。我在這裏錯過了什麼?
運行一些單元測試,同時學習反應,我看到這個失敗消息「1!= 1」錯誤反應單元測試
expected Map { "items": List [] } to equal Map { "items": List [] }
我的問題是......什麼?我爲動作和評估使用了fromJS
,但這與我正在遵循的教程匹配,似乎在項目的其他地方工作。我在這裏錯過了什麼?
看起來你有一個Map
類型的對象,並且你正在比較是否兩者在內存中都有相同的引用。由於它們在內存中沒有相同的參考,因爲每個對象都是使用關鍵字new Map(...
創建的,所以first Map object with memory reference XYZ
!= second Map object with memory reference ABC
。
我希望它是有道理的。
乾杯,
謝謝,但我沒有用新的Map()創建它們,從JS使用它在幕後?即使如此,我不認爲這是問題,正如我所說,這種模式是從教程中複製並在應用程序的其他地方工作。 –
這就是Immutable所做的。每次修改對象時,都會根據所做的更改創建一個新對象,並在內存中有不同的引用。如果這種模式在其他地方起作用,那麼問題就在代碼中的其他地方,但反映在expect()'調用 – JorgeObregon
想通了,我錯過了從我的測試切入點chai.use(chaiImmutable);
。豪爾赫的斷言是正確的,但顯然這條線可以對不可變對象進行價值比較。
謝謝!
也許比較'Map'裏面的'items'長度? – JorgeObregon