Как написать модульный тестовый пример с помощью sinon и tap, не затрагивая базу данных? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть такая функция, которая получает данные из базы данных по ее идентификатору. Я хочу проверить эту функцию. Но я не хочу использовать настоящую базу данных. Я хочу смоделировать базу данных с использованием библиотеки Sinon и использовать утверждения из tap framework. Моя функция такова:

function getById(id) {
  return Sample.findByPk(id).then((result) => {
    if (result) {
      return result;
    }
    throw new EmptyResultError('No data found');
  });
}

где Sample - это модель моей базы данных.

Может кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 26 февраля 2020

вы можете попробовать это так:

let sample = sinon.stub(Sample, 'findByPk') // this will stub Sample models findByPk method
sample.withArgs('507f191e810c19729de860ea').returns({ _id:'507f191e810c19729de860ea', name: 'test' })

.withArgs используется для сопоставления переданного аргумента и возврата результатов на его основе

...