玩过了一下周围,发现行之有效的解决方案:
import triggerEvent from 'trigger-event';
import component from './components/site-menu';
describe('triggering menu button',() => {
let menuToggleSpy;
beforeEach(() => {
menuToggleSpy = jasmine.createSpy('event');
component();
});
it('dispatches menu.toggle event',() => {
document.addEventListener('menu.toggle', menuToggleSpy);
const $trigger = document.querySelector('.js-trigger-main-menu');
triggerEvent($trigger, 'click');
expect(menuToggleSpy).toHaveBeenCalled();
});
});
基本上创建一个名为“事件”新的间谍,将其添加为事件处理程序,我的事件,然后验证它被调用。
如果有更好的方法来做到这一点,我将非常乐意接受不同的答案。
此处定义的'menuToggleSpy'在哪里?我收到一个“无法找到变量”的错误。 – adamdport
啊,'间谍=== menuToggleSpy'。我会更新我的答案。 –