Функция покрытия внутри функции обратного вызова с шуткой - PullRequest
0 голосов
/ 22 февраля 2019

Я занимаюсь разработкой приложения Nodejs.Я использую muter для загрузки файла.Когда я пишу юнит-тесты с шуткой, я вижу покрытие функций в тестовом покрытии.Это показывает, что у меня есть открытые линии.Проблема в том, что эти функции являются вспомогательными функциями внутри параметров конструктора

const storage = multer.diskStorage({
  destination: "uploads/",
  filename: (req, file, cb) => {
    filterFilename(req, file, cb);
  }
});
const upload = multer({
  storage: storage,
  limits: {
    files: 2,
    fileSize: 5 * 1024 * 1024
  },
  fileFilter: (req, file, cb) => {
    checkFileType(file, cb);
  }
});

Я хочу знать, как проверить функции filterFilename и checkFileType, а также операторы внутри них.Кстати, эти функции являются частными функциями.Я не хочу их экспортировать.

1 Ответ

0 голосов
/ 22 февраля 2019

Один из способов проверки этого кода - макетировать multer примерно так:

var multer  = require('multer')
jest.mock('multer', () => jest.fn())

test('basic', () => {
  runTheCodeInYourSnippet();
  expect(multer).toHaveBeenCalled()
  const {
    storage,
    fileFilter
  } = multer.mock.calls[0][0]

  // test storage.filename(req, file, cb)
  // and fileFilter(req, file, cb)
})

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