Как я могу переписать функцию Mongoose findOne () в схеме для тестирования? - PullRequest
2 голосов
/ 31 октября 2019

Я пытаюсь проверить некоторую бизнес-логику, и мне нужно переписать функцию findOne (), которая помещена в схему Mongoose.

Небольшой работоспособный пример того, что я пытаюсь сделать, это:

function myFunc() {
  const qry = { ...search_criteria... };
  mySchema.findOne(qry)
     .exec()
     .then((doc) => { ...some business logic...})
}

Как я могу манипулировать функцией findOne () таким образом, чтобы я мог определить, что она будет возвращать в моем тесте?

1 Ответ

2 голосов
/ 31 октября 2019

Вы можете использовать sinon, чтобы создать заглушку для этой функции , в основном полностью заменив ее на то, что вам нужно.

Например:

const findOne = sinon.stub(mySchema, 'findOne');
findOne.callsFake((query) => { console.log('Test'); });

mySchema.findOne({}); // prints 'Test'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...