Доступ к функции jest.fn внутри другого - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть следующий случай при написании юнит-тестов:

elasticsearch.Client = jest.fn().mockImplementation(() => {
      return {
        update: jest.fn().mockImplementation(() => {
            return {}
        })
     }
});

Теперь я хочу сделать некоторые ожидания при вызове функции обновления. Как я могу получить доступ к функции обновления здесь в тестовом примере.

Я могу получить доступ кasticsearch.Client и к его фиктивной переменной какasticsearch.Client.mock. Но как я могу получить аналогичный доступ к функции обновления?

1 Ответ

1 голос
/ 07 февраля 2020

Вы можете попробовать переместить функцию макета для update во внешнюю область видимости:

const updateMock = jest.fn().mockImplementation(() => {
  return {}
});

elasticsearch.Client = jest.fn().mockImplementation(() => {
  return {
    update: updateMock
  }
});

Затем вы можете использовать updateMock в своих утверждениях. Например:

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