我想寫一個單元測試的AngularJS指令(這是包裝在一個模塊中需要通過requirejs),加載與requirejs
模塊,但我有問題與全球對象在angular
中加載時。嘲笑AngularJS單元測試的窗口對象
我目前的理解是,我需要實例化一個角度的應用程序,添加我的指令,然後讓角度編譯器在包含指令名稱的HTML上運行。從那時起,我可以像往常一樣進行測試。
然而,當嘗試要求angular
在我的測試,我得到以下錯誤:
Uncaught Error: Evaluating c:\...\angular.js as module "angular" failed with error: ReferenceError: window is not defined
有人建議,爲了得到一個窗口對象安裝jsdom,但是從上面的錯誤消息,則可能能夠弄清楚我在Windows環境中,而且這種組合看起來很痛苦。
此刻,我的測試很簡單:
// Imports, including requirejs config
describe("Directive tests", function() {
var angular;
before(function(done) {
requirejs(['angular'], function(a) {
angular = a;
});
});
});
我可以下去定義在requirejs一個window
模塊的路線,並在測試注入一個模擬版本,但似乎像很多工作。
但這個錯誤發生時嘗試需要的角度,我不能得到儘可能注射服務。 Angular是在requirejs config map中定義的,所以需要像上面那樣加載,不是嗎? – chooban 2014-12-04 15:44:40