Я в замешательстве. Я только начал писать тесты с шутками и не могу понять, что происходит. Вот мой результат:
Expected value to equal:
ObjectContaining {"field": "f1", "module": "m1", "rights": {"read": true}}
Received:
{"_id": "5ae85cd0bc5ad3569bf66df8", "field": "f1", "module": "m1", "rights": {"read": true}}
Difference:
- Expected
+ Received
@@ -1,6 +1,7 @@
- ObjectContaining {
+ Object {
+ "_id": "5ae85cd0bc5ad3569bf66df8",
"field": "f1",
"module": "m1",
"rights": Object {
"read": true,
},
183 | ]),
184 | );
> 185 | expect(user.acl[0]).toEqual(
186 | expect.objectContaining({ module: 'm1', field: 'f1', rights: {read: true}}),
187 | );
188 | });
Я думаю, что это не так, потому что user
- объект мангуста.
Вы должны удалить _id
из вашего объекта перед сравнением.
В качестве альтернативы вы должны использовать toMatchSnapshot()
(но все же необходимо удалить все ключи, которые будут меняться при каждом запуске.
Похоже, вы можете преобразовать объект мангуста в простой объект, вызвав функцию user.toObject()
. И все работает как положено.
это определенно плохой ответ, а как насчет сгенерированного идентификатора? мне это нужно. Кроме того, я не верю, что невозможно проверить только часть объекта в шутку.