2016-04-30 2 views
0

Я не знаю, почему мое тестирование не работает.

it('should be called when "get-tentative-events" is fired', function() { 
    spyOn(this.VM, 'addEvents'); 
    spyOn(this.VM, 'setEventData').and.returnValue(null); 

    this.VM.$root.$broadcast('get-tentative-events', []); 
    expect(this.VM.addEvents).toBeDefined(); 
    expect(this.VM.addEvents).toHaveBeenCalled(); 
}); 

В отладке, я подтвердил, что addEvents называется.
Но была ошибка single-calendar addEvents should be called when "get-tentative-events" is fired FAILED

FYI:

, если я изменю

this.VM.$root.$broadcast('get-tentative-events', []); 

к

this.VM.addEvents([]) 

я могу передать этот test.So я не могу понять, почему мой тест не работает.

ответ

0

У меня всегда возникают проблемы при шпионаже на методы и события Vue. Вы можете попробовать асинхронный тест с $nextTick на случай непредвиденных событий. События Vue разрешены async, но я рекомендую просто тестировать обработчики событий напрямую и доверять тому, что обработка внутренних событий Vue работает, а не шпионят за ними.

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