Тестирование
Шпионские шутки и издевательства на примерах
Сделайте ваши тесты 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