我有一個非常簡單的指令,其目的僅僅是取消dragstart
事件:通模擬DOM事件處理程序的指令沒有jQuery的
link: function(scope, element) {
element.on('dragstart', function(e) {
e.preventDefault();
})
}
我怎樣才能在茉莉花試驗測試呢?我有以下測試,試圖偵察事件對象,並將其傳遞給處理程序:
var mockEvent;
beforeEach(function() {
mockEvent = new Event('dragstart');
spyOn(mockEvent,'preventDefault');
});
it('should call preventDefault', function() {
element.triggerHandler('dragstart', mockEvent);
expect(mockEvent.preventDefault).toHaveBeenCalled();
});
但是測試失敗。你可以see this at this Plunker.。我如何測試這個(/重構指令,使其可測試)?
編輯:理想情況下,不包括jQuery。 編輯:改變標籤
請編輯您的標題或您的答案以指定Angular。其他搜索香草JavaScript解決方案的人正在登陸這裏。 –
@NachoColoma隨意編輯! –