Как издеваться над этим методом? - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу издеваться над строкой кода ниже.И, пожалуйста, объясните, как я могу высмеивать это подробно, поскольку я новичок в javascript и написании тестовых случаев.Приведенный ниже код вернет обещание.

const createPriceConfiguration = (fastify, req) => {
  return fastify.pg.transact(client => insertQuery(fastify, client, req));
};

const client = {
   query: jest.fn(() => {
        return new Promise(resolve => {
          resolve({ rows: [req.body] });
        });
      })
    };

Мой коллега дал решение, которое я не могу понять.

transact: jest.fn(queryFunction => {
        return queryFunction(client);
      })

1 Ответ

0 голосов
/ 05 апреля 2019

Вы хотите протестировать функцию createPriceConfiguration, которая берет объект fastify и вызывает функцию из него.Насмешка над этой функцией может быть сделана с помощью насмешки над объектом fastify.Вам нужно смоделировать метод transact в переданном объекте fastify, чтобы вернуть желаемый ответ (например, обещание или результат другой функции, ...)

const mockedFastify = {
  pg: {
    transact: jest.fn(() => new Promise(resolve => {
      ...desired code
    }))
  }
};

Затем в тестовом примере вы передаете mockedобъект createPriceConfiguration(mockedFastify);

...