我在摩卡的某个地方断言:
assert.equal(model.organizationId,objId);
但是我得到了失败的摩卡结果:
Uncaught AssertionError: "5225777180a843d901000012" == "5225777180a843d901000012"
为什么它会发生,当id是相同的时候。
如何克服它?
答案 0 :(得分:10)
因此,javascript中的mongodb ObjectIds在这方面令人沮丧。它们是不同的对象,导致obj1 === obj2
评估为false,即使它们表示的值相同。有3个选项:
比较前转换为字符串。我经常使用它,因为它非常令人沮丧。
使用他们提供的.equals()
方法:assert.ok(model.organizationId.equals(objId))
编写一个自定义比较函数,可以取null,ObjectIds或Strings并做正确的事(我也做过)