Прозрачная ручная шутка - PullRequest
0 голосов
/ 22 февраля 2019

Я использую ручной макет для модуля.Я хочу очистить фиктивную функцию в ручном макете и вернуть ей новое значение.Как я могу это сделать?Я пробовал много способов, но он всегда возвращал значение в ручном макетеЯ использую jest.clearAllMocks() и jest.resetAllMocks() в beforeEach и использую mockReturnValue, чтобы смоделировать новое значение для этой функции, но оно не меняется.Это мой ручной макет

const firebase = {};
firebase.storage = {
  bucket: jest.fn(),
  upload: jest
    .fn()
    .mockResolvedValue([
      { getSignedUrl: jest.fn().mockResolvedValue(["link"]) }
    ]),
  file: _ => ({
    delete: jest.fn()
  })
};
module.exports = firebase;

Я получаю значение link, но я не могу смоделировать другие значения в моем модульном тесте

1 Ответ

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

Вам необходимо использовать один из этих специфических макетов:

  • mockFn.mockClear(): удалит всю сохраненную информацию о вызове макета
  • mockFn.mockRestore(): то же, что и выше, плюс удаление поддельных возвращаемых значений
  • mockImplementation: установить новое возвращаемое значение для имитации

Существует два способа создания экземпляра mockFn:

const mockFn = jest.fn()

или путем импорта макета:

import mockFn from 'mockedModule'
jest.mock('mockedModule', ()=> jest.fn())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...