Как написать тест для функции, которая вызывает другую функцию, используя шутку и фермент? - PullRequest
0 голосов
/ 04 июля 2018

Я использую шутки и энзимы для тестирования своего приложения. У меня есть функция:

const someFunc = (arg1, arg2, arg3) => {
    arg2.someOtherFunc(arg3);
}

Теперь я хочу написать тест для функции someFunc, я высмеял someOtherFunc, и я проверю, будет ли он вызываться с некоторым arg3, но я не могу понять, как мне написать утверждение ?

Мой тест должен утверждать, что после someFunc он должен вызвать someOtherFunc с некоторыми аргументами.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

В вашем случае вы хотите передать функцию в качестве обратного вызова И в ваших тестах вы должны смоделировать его и проверить, вызывается ли он / вызывается n раз или вызывается с определенным аргументом.

Проверьте этот пример ниже:

// your function
const someFunc = (arg1, arg2, arg3) => {
  arg2.someOtherFunc(arg3);
}

// your test file
it("works", () => {
  const arg1 = 'im just any value doesnt matter';
  const arg2 = {
      someOtherFunc: jest.fn(),
    };
  const arg3 = 'argument';

  someFunc(arg1, arg2, arg3);

  // some assertions you can use
  expect(arg2.someOtherFunc).toBeCalled();
  expect(arg2.someOtherFunc).toBeCalledWith('argument');
  expect(arg2.someOtherFunc).toHaveBeenCalledTimes(1);
});
0 голосов
/ 04 июля 2018

Вы можете использовать toHaveBeenCalledWith()

expect(someOtherFunc).toHaveBeenCalledWith('your args');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...