Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在摩卡的某个地方断言:
assert.equal(model.organizationId,objId);
但是我得到了失败的摩卡咖啡结果:
Uncaught AssertionError: "5225777180a843d901000012" == "5225777180a843d901000012"
为什么会发生,当 id 相同时。
以及如何克服它?
所以javascript中的mongodb ObjectIds在这方面令人沮丧。obj1 === obj2它们是不同的对象,即使它们代表的值相同,也会导致评估为假。有 3 个选项:
obj1 === obj2
在比较之前转换为字符串。我经常使用它,因为否则它会令人沮丧。
使用.equals()他们提供的方法:assert.ok(model.organizationId.equals(objId))
.equals()
assert.ok(model.organizationId.equals(objId))
编写一个自定义比较函数,它可以接受 null、ObjectIds 或 Strings 并做正确的事情(我也做过)