3
我想(單位)測試我的AngularJS應用程序而不訴諸使用jQuery,因爲jQuery將替換jqLite,並且在真實應用程序中jQuery也將不可用。 jQuery和jqLite之間存在真正的差異,因此在單元測試中使用jQuery可以爲AngularJS提供風險。模擬沒有jQuery的轉義按鍵
我的大多數測試現在沒有jQuery,但我需要爲轉義鍵觸發keydown,我只能找出如何使用jQuery。我將如何在Javascript中以跨瀏覽器的方式做到這一點?
該指令監聽逃生keydowns這樣的:
body.bind('keydown', handledEscapeKey);
var handledEscapeKey = function(e) {
if (e.which === 27) {
e.preventDefault();
scope.$apply(scope.hideTooltip());
}
};
我已經試過這一點,但它似乎不工作:
if(window.KeyEvent) {
var evObj = $document.createEvent('KeyEvents');
evObj.initKeyEvent('keydown', true, true, $window, false, false, false, false, 27, 0);
} else {
var evObj = $document.createEvent('UIEvents');
evObj.initUIEvent('keydown', true, true, $window, 1);
evObj.keyCode = 27;
}
elm[0][0].dispatchEvent(evObj);
這會有幫助嗎? – Maarten
嗨,我已經更新爲你發佈 –
所以使用,然後我可以單元測試該部分? – Maarten