我正在尝试使用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
,测试成功。如何使用方法中定义的函数?
有没有办法在对象中添加或传递对该匿名函数的引用?