2013-11-15 45 views
5

我正在使用karma測試用例測試angularjs中的焦點事件。但是這個元素並沒有得到關注。當我做element.focus()並檢查元素 是否爲焦點時,我得到錯誤。並且document.activeElement在那時是整個身體。Karma測試用例:焦點事件

請提出解決方案。由於

回答

7

(此答案由Testing for focus an AngularJS directive啓發)

您需要將您的元素添加到文檔正文爲了document.activeElement發揮它。

你打電話element.focus()之前,這樣做:

element.appendTo(document.body); 

另外,如果你這樣做是在單元測試中我會建議您在測試之後刪除元素,否則每次測試都會添加另一個元素身體(它可能會影響你的其他測試的結果)。

afterEach(function() { 
    element.remove(); 
} 
+2

這對我(主要)工作。我沒有使用JQuery,所以'element.appendTo'沒有切斷它。我需要做'document.body.appendChild(element [0]);' – mgilson