2016-03-03 2 views
3

Как мне воспользоваться функцией, которая вызывается другой функцией в Jasmine?Шпион по функции, вызываемой другой функцией в Жасмине

Ожидание верно, если я звоню this.bar(), но меня это не интересует.

Spec

import * as src from './src; 

describe('app',() => { 
    it('should call bar',() => { 
    spyOn(src, 'bar'); 
    src.foo(); 
    expect(src.bar).toHaveBeenCalled(); 
    }); 
}); 

Источник

function foo() { 
    bar(); 
} 

function bar() { 
    console.log('bar'); 
} 

export { 
    foo, 
    bar, 
}; 
+0

какая версия жасмина вы используете? – leobelizquierdo

+0

@leobelizquierdo версия 2.4.1 –

ответ

0

В жасмин, когда вы используете spyOn, он высмеивает эту функцию и ничего не выполняет. Если вы хотите проверить, далее вызовы функций внутри, вам нужно позвонить and.callThrough(), как показано ниже, пожалуйста, попробуйте его

spyOn(src, 'bar').and.callThrough(); 
0

Установите этот флажок вопрос: AngularJS - How to test if a function is called from within another function?. Кажется, что проверяемая функция (bar) должна быть вызвана с той же ссылкой, что и функция spyOn (src.bar). Вам необходимо обратиться в foo в src.bar, поэтому вам нужно будет использовать this.bar.

Смежные вопросы