У меня есть метод с именем testfn
в моем компоненте vue, который вызывается всякий раз, когда происходит событие testevt
. Этот метод содержит вызов console.log, который ясно показывает, что метод вызывается.
При запуске теста с помощью vue-test-utils, если я создаю шпиона Sinon для метода и вызываю метод напрямую, шпион правильно обнаруживает, что метод был вызван:
const wrapper = mount(MyComponent, {});
var spy = sinon.spy(wrapper.vm, 'testfn');
wrapper.vm.testfn();
expect(spy.called).to.be.true; //(uses the Chai assertion library)
Это не выдает ошибку.
Однако, если я создаю того же шпиона, но вместо прямого вызова метода, я генерирую событие, которое вызывает мой метод, метод вызывается (я вижу это, потому что метод содержит вызов console.log), но шпион делает Не регистрируйте, что метод был вызван. Таким образом, следующее дает ошибку:
const wrapper = mount(MyComponent, {});
var spy = sinon.spy(wrapper.vm, 'testfn');
wrapper.vm.$emit('testevt');
expect(spy.called).to.be.true; //(uses the Chai assertion library)
Кажется, что происходит то, что сам testfn не вызывается, а скорее называется его клоном. В любом случае, как я могу использовать шпион-синон для определения, будет ли вызван testfn или его клон после того, как я отправлю событие testevt
?