В чем разница между методами `toHaveBeenCalled ()` и `andCalledThrough ()`

0

При использовании Jasmine Spies, насколько отличается метод andCalledThrough() от toHaveBeenCalled, действительно ли он полностью запускает оригинальный метод? Какие-нибудь идеальные сценарии, когда я должен его использовать?

  • 0
    По сути, в mocking он используется для выполнения вашей фиктивной функции, но 'andCalledThrough ()' с помощью этой функции вы вызываете и выполняете ее также, а 'toHaveBeenCalled' - это только проверка, находится ли функция в файле или нет, и вызывается ли она
Теги:
unit-testing
karma-jasmine
jasmine

1 ответ

2

Это два разных шага в шпионаже над функцией.

Когда вы объявляете spy функцию, перед вызовом функции вы можете приложить некоторые инструкции к тому, что должно быть сделано при вызове функции. and.callThrough() означает, что будет использоваться фактическая реализация. Другие варианты - and.callFake() и and.returnValue(), которые позволяют вам высмеивать ответ и не использовать фактическую реализацию.

После того, как вызванная функция была вызвана, вы можете проверить, что она toHaveBeenCalled с использованием expect и toHaveBeenCalled и ее вариантов.

См. Документацию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню