我有一個angularjs web應用程序,並希望使用qunit進行單元測試。我有一個控制器:Angularjs和qunit測試
function RootCtrl($scope, $rootScope, $window, $location) {
// logger is empty at the start
$scope.logger = '';
// we have no login error at the start
$scope.login_error = '';
//
// Get values array of object
//
$rootScope.values = function (obj) {
var vals = [];
for(var key in obj) {
if(key !== '$$hashKey' && key !== 'checked')
vals.push(obj[key]);
}
return vals;
}
}
現在我想編寫單元測試與qunit
values
功能。我將所有js
文件包括到test/index.html
和qunit.css
。現在我test.js
有以下內容:
var injector = angular.injector(['ng', 'myApp']);
var init = {
setup : function() {
this.$scope = injector.get('$rootScope').$new();
}
}
module('RootCtrl', init);
test('RootCtrl', function(){
var $controller = injector.get('$controller');
$controller('RootCtrl', {
$scope : this.$scope,
$location : this.$location
});
equal(['value'], $controller.values({'key' : 'value'}))
});
但我發現了錯誤:http://docs.angularjs.org/error/ $噴油器/ unpr P0 = $ rootElementProvider%20%3 C-%$ 20 rootElement的%20%3 C-%$ 20的位置% 20%3C-%$ 20路線在:
$controller('RootCtrl', {
$scope : this.$scope,
$location : this.$location
});
如何正確地注入控制器和使用$scope
,$rootScope
,$location
和它的另一個服務?
謝謝。
新增,得到相同的錯誤 – 0xAX