我希望這是一個簡單的問題。如何測試窗口點擊角度事件監聽器
我有一個選擇框指令,應該在指令之外單擊任何東西時關閉。因此,窗口有一個事件偵聽器隱藏盒子一旦點擊事件是heard-
$window.addEventListener('click', function() {
$scope.expanded = false;
$scope.$apply();
});
工作正常,沒有任何怨言。但我試圖爲此編寫一個單元測試,並且無法知道如何觸發點擊,即使在窗口本身。
it('should close the dropdown if the window is clicked', function() {
toggleButton.trigger('click');
expect(eleSimpleOptionBox.hasClass('ng-hide')).toBe(false);
$window.trigger('click');
expect(eleSimpleOptionBox.hasClass('ng-hide')).toBe(true);
});
我已經試過以下各項
$window.trigger('click'); // as well as .click()
$window.triggerHandler('click');
angular.element('body').trigger('click'); // as well as .click()
someWrappingElement.trigger('click'); // as well as .click()
您是否在觸發事件後在您的範圍或'$ rootScope'上調用'$ digest'? – yarons
都不是。但在測試中,第一個點擊觸發器沒有'$ digest',所以我假設第二個會觸發。它使用DOM事件監聽器而不是角色事件監聽器。 –