2017-02-22 85 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);。豪尔赫的断言是正确的,但显然这条线可以对不可变对象进行价值比较。

谢谢!