Делать утверждения на ручных шутках Jest - PullRequest
0 голосов
/ 18 декабря 2018

У меня возникли проблемы с ручными шутками, и я мог бы помочь.

Файл, который я тестирую, выглядит примерно так:

import withTranslation from '../utils/withTranslation'

withTranslation('test')

Я шучу над модулем в тестовом файле, как этот.

import withTranslation from '../utils/withTranslation'

jest.mock('../utils/withTranslation')

// tests here

У меня естьручной макет на ../utils/__mocks__/withTranslation.js со следующим кодом:

const impl = (...args) => {
  console.log('in mock', args)
  return args
}

export default impl

Когда тест выполняется, макет используется, и я вижу журнал консоли.Пока все хорошо.

Тем не менее, я хочу быть в состоянии сделать утверждения об использовании withTranslation, когда он имитируется.Например, expect(withTranslation).toHaveBeenCalledWith('test').

Итак, я изменяю ручной макет на функцию макета Jest с той же реализацией, что и раньше.

const impl = (...args) => {
  console.log('in mock 1', args)
  return args
}

// only difference is wrapping in jest.fn()
export default jest.fn(impl)

Когда тест выполняется сейчас, используется универсальная функция макета Jest, и яНЕ видеть журнал консоли, поэтому моя фальшивая реализация никогда не вызывается.Есть идеи?

1 Ответ

0 голосов
/ 20 декабря 2018

Код в моем вопросе правильный.Причина этого состояла в том, что в моем тестовом наборе был глобальный beforeEach, который вызывал jest.resetMocks ().Надеюсь, это сэкономит кому-то несколько часов.

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