不明白为什么这段代码不起作用?
错误是:
Expected spy addEventListener to have been called with [ 'scroll', <jasmine.any(Function)>, true ] but it was never called.
。
describe('sessionActivity.spec',() => {
beforeEach(module('sessionActivity'));
it('should subscribe', inject(($window, sessionActivity) => {
spyOn($window, 'addEventListener');
sessionActivity.subscribe();
//$window.addEventListener('scroll',() => {}, true);
//$window.addEventListener('click',() => {}, true);
expect($window.addEventListener).toHaveBeenCalledWith('scroll', jasmine.any(Function), true);
expect($window.addEventListener).toHaveBeenCalledWith('click', jasmine.any(Function), true);
}));
});
在sessionActivity.subscribe里面我创建了两个事件监听器。
而且如果我用//$window.addEventListener取消注释两行,则所有测试都是通过。
我应该在这里改变什么?
编辑:
的问题是,我的快捷里面sessionActivity.subscribe():
const { addEventListener, removeEventListener } = $window;
addEventListener('scroll', trackActivityWithDebounce, true);
addEventListener('click', trackActivityWithDebounce, true);
有人能解释一下吗?
请提供所有相关的代码。 addEventListener被调用的地方在哪里?请参阅http://stackoverflow.com/help/mcve – estus