Реагировать на ошибки теста Jest при использовании toHaveBeenNthCalledWith - PullRequest
0 голосов
/ 05 февраля 2019

Я следую документации Jest , но не могу обойти следующую ошибку.expect(dummyFunction).toHaveBeenNthCalledWith is not a function

Если я что-то не упустил, я почти уверен, что у меня правильно настроена dummyFunction как jest.fn().Я даже утешил вывод dummyFunction непосредственно перед тем, как использовать его в своих тестах, и это вывод.

dummyFunction console.log output

    { [Function: mockConstructor]
      _isMockFunction: true,
      getMockImplementation: [Function],
      mock: [Getter/Setter],
      mockClear: [Function],
      mockReset: [Function],
      mockReturnValueOnce: [Function],
      mockReturnValue: [Function],
      mockImplementationOnce: [Function],
      mockImplementation: [Function],
      mockReturnThis: [Function],
      mockRestore: [Function] }

toHaveBeenCalledNthWith Test

const dummyFunction = jest.fn();

expect(dummyFunction).toHaveBeenCalledTimes(2); // pass

expect(dummyFunction).toHaveBeenNthCalledWith(1, { foo: 'bar' }); // error
expect(dummyFunction).toHaveBeenNthCalledWith(2, { please: 'work' });

Заранее спасибо за помощь.

1 Ответ

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

toHaveBeenNthCalledWith был выпущен в Jest версии 23.0.0 , поэтому вы увидите эту ошибку, если используете более раннюю версию Jest.

Обратите внимание, что toHaveBeenNthCalledWith это просто синтаксический сахар для использования spy.mock.calls[nth], поэтому, если вы используете более раннюю версию Jest, вы можете просто сделать следующее:

const dummyFunction = jest.fn();

dummyFunction({ foo: 'bar' });
dummyFunction({ please: 'work' });

expect(dummyFunction).toHaveBeenCalledTimes(2); // pass

expect(dummyFunction.mock.calls[0]).toEqual([{ foo: 'bar' }]); // pass
expect(dummyFunction.mock.calls[1]).toEqual([{ please: 'work' }]); // pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...