2016-12-06 7 views
1

Как я могу использовать Sinon spy для проверки того, что функция импортированного класса вызывается из функции внутри текущего класса? Я пытаюсь вызвать метод .calledOnce для импортированной функции класса, но только если он вызывается в его контейнере функций.Sinon spy ожидать вызова функции внутри вложенной функции

Пример проиллюстрирован следующим образом:

<!-- language: lang-js --> 
// foo.js 
class foo { 
    static fooFn() { 

    } 
} 

// bar.js 
import foo from 'foo'; 

class bar { 
    barFn() { 
     foo.fooFn() 
    } 
} 

// barTest.js 
import { expect, assert } from 'chai'; 
import sinon from 'sinon'; 
import bar from 'bar'; 

describe('barTest',() => { 
    beforeEach(function beforeCallback() { 
     this.fooSpy = sinon.spy(foo, 'fooFn'); 
    }); 

    it('calls foo once',() => { 
     bar.barFn(); 
     expect(foo.fooFn).calledOnce; 
    }); 
}); 

В приведенном выше случае, я могу глобально шпиону, что fooFn называется один раз. Тем не менее, я хотел бы усилить ожидание с помощью проверки, что foo.fooFn вызывается в пределах barFn.

ответ

0

Вы можете проверить функцию вызывающего абонента, используя аргументы.caller, например.

expect(arguments.caller).equal(bar.barFun); 

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

  • Нет связанных вопросов^_^