运行一些单元测试,同时学习反应,我看到这个失败消息“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