Тестирование

Шпионские шутки и издевательства на примерах

Сделайте ваши тесты JavaScript более глубокими, компактными и быстрыми с помощью этих двух функций Jest

👁 шпионаж

jest.spyOn( PROTOTYPE_OR_CLASS, METHOD_NAME )

Шпионаж - это наблюдение за вызовами метода без изменения самого метода.

Шпионить за методом

Допустим, у вас есть класс в модуле:

Вот как вы можете следить за методами instance и static:

Если шпиону назначена переменная, вы также можете получить к нему доступ через переменную (а не через отслеживаемый метод):

Вот некоторые из сопоставителей Jest, которые вы можете использовать со spyOn:

Следите за встроенным методом

Встроенные методы тоже небезопасны от шпионов. Следить за ними можно так:

Измените реализацию метода, за которым следят

Это называется «насмешкой», поскольку таким образом мы можем имитировать поведение метода, тем самым «высмеивая» метод.

Вы также можете заменить содержимое метода, используя jest.fn()

👻 издевательство

METHOD = fn( () => {...} )

Вы можете временно заменить содержимое метода на имитацию Jest.

Имитация метода

Допустим, у вас есть класс в модуле:

Вы можете заменить содержимое его методов следующим образом:

Имитация встроенного метода

Замените метод .addEventListener на фиктивный:

В заключение

Мы видели два подхода к отслеживанию методов в нашем коде. Вы можете использовать jest.spyOn как ненавязчивый способ записи звонков. В качестве альтернативы вы можете использовать jest.fn для полной замены метода его поддельной версией, которая называется «насмешкой».

Удачного кодирования!

Больше контента на plainenglish.io