При использовании Jasmine Spies, насколько отличается метод andCalledThrough()
от toHaveBeenCalled
, действительно ли он полностью запускает оригинальный метод? Какие-нибудь идеальные сценарии, когда я должен его использовать?
Это два разных шага в шпионаже над функцией.
Когда вы объявляете spy
функцию, перед вызовом функции вы можете приложить некоторые инструкции к тому, что должно быть сделано при вызове функции. and.callThrough()
означает, что будет использоваться фактическая реализация. Другие варианты - and.callFake()
и and.returnValue()
, которые позволяют вам высмеивать ответ и не использовать фактическую реализацию.
После того, как вызванная функция была вызвана, вы можете проверить, что она toHaveBeenCalled
с использованием expect
и toHaveBeenCalled
и ее вариантов.
См. Документацию.