Как проверить Mongodb найти, найти функцию с помощью Jest в NodeJS - PullRequest
1 голос
/ 10 октября 2019

Я пытался написать контрольные примеры для функций системной библиотеки mongodb find, findOne, UpdateMany, которые я использую в своем коде. Но не смог найти правильный способ тестирования функций Монго.

Я попытался смоделировать реализацию и вернуть значения функций Монго find, findOne, UpdateMany с помощью jest.fn (), но либо тестовый случай не удался, либо яя застрял с "TypeError: Не удается прочитать свойства 'неопределенного" ошибка mongoDB. Нужна хорошая помощь в правильном способе проверки функций find, findOne в mongoDB.

Я передаю функцию mongo_con.find в myFuncImpl ()

Файл подключения / конфигурации:


let mongo_conn = await MongoUtil.createMongoConnection(config.MONGO_COL_NAME);

myService.myFuncImpl(context,mongo_conn.find) // passing as a function

Файл реализации:

myFuncImpl = async (mongo_con_find:any) {

  let result = await mongo_con_find({ }, { projection: {_id: 0, Name: 1 }}).toArray();

  return result;
}

В моей шутке Тестовый файл:

test("for myFuncImpl()", async () => {

 let mongo_con_find = jest.fn(() => ({ toArray: _ =>[...DummyMongoResponse]}));

 output_data = await myService.myFuncImpl(context_data,mongo_con_find)
 expect(mongo_con_find).toHaveBeenCalledTimes(1); // giving me 0

}

1 Ответ

0 голосов
/ 10 октября 2019

Вы должны вернуть обещание, чтобы использовать await

test("for myFuncImpl()", async () => {

  let mongo_con_find = jest.fn(
    () => ({
      toArray: () => (new Promise(function(resolve, reject){
        resolve([...DummyMongoResponse])
      })

  output_data = await myService.myFuncImpl(context_data,mongo_con_find)
  expect(mongo_con_find).toHaveBeenCalledTimes(1); // giving me 0

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...