我正在试着用jasmine测试removeEventListener。我有过
describe('test', function(){
'use strict';
beforeEach(function() {
affix('#test');
method = {
test: function() {
console.log('hi!');
}
}
spyOn(method, 'test');
$selectedElement = $('#test');
selectedElement = $selectedElement[0];
});
it('should remove event listener', function(){
selectedElement.addEventListener('click', method.test);
selectedElement.removeEventListener('click', method.test);
$selectedElement.click();
expect(methods.showLove).not.toHaveBeenCalled();
});
});但这失败了。现在我想这是因为我在这里有匿名函数。有没有办法在不使用非匿名函数的情况下解决这个问题?
如果我把
function clickMe() {
return 'bla';
}并在事件侦听器中使用它而不是method.test,测试成功。如何使用方法中定义的函数?
有没有办法在对象中添加或传递对匿名函数的引用?
发布于 2017-04-19 19:19:13
事实证明,jQuery触发器事件没有正常工作,所以我在MDN上使用了trigger events page上的触发器事件。
这就成功了..。
https://stackoverflow.com/questions/43489131
复制相似问题