4

私はモカのどこかで次のように主張しています:

assert.equal(model.organizationId,objId);

しかし、私は失敗したモカの結果を次のように取得しています:

Uncaught AssertionError: "5225777180a843d901000012" == "5225777180a843d901000012"

IDが同じのに、なぜそれが起こるのか。

そして、それを克服する方法は?

4

1 に答える 1

11

したがって、javascript の mongodb ObjectIds は、この点で悲しいことにイライラします。それらは異なるオブジェクトobj1 === obj2であり、それらが表す値が同一であっても false と評価されます。3 つのオプションがあります。

  1. 比較する前に文字列に変換します。そうしないととてもイライラするので、私はこれをよく使います。

  2. .equals()彼らが提供する方法を使用してください:assert.ok(model.organizationId.equals(objId))

  3. null、ObjectIds、または Strings を取り、正しいことを行うことができるカスタム比較関数を作成します (私もこれを行いました)。

于 2013-09-03T05:53:22.373 に答える