我是新來angularjs和寫一個簡單的控制器的單元測試。但不知何故,它不工作。代碼去如下:我在angularjs控制器的茉莉花單元測試中做錯了什麼?
ResetPwdCtrl.js(提到只有功能我測試)
function ResetPwdCtrl($scope, $modalInstance, Employee, emp){
$scope.emp= emp;
$scope.confirm = function(){
Employee.sendResetPwdLink(emp.id).success(function(){
$modalInstance.close();
}).error(function(errorObject){
$scope.alert = {
type: 'danger',
text: errorObject.statusCode
};
});
};
}]);
「員工」是一家工廠,sendResetPwdLink是一個靜態方法。它的單元測試是
describe("Reset pwd", function() {
var scope, mockModalInstance, mockEmployee, emp, q, deferred, appCtrl;
beforeEach(function() {
mockEmployee = {
id : 0,
sendResetPwdLink : function(theId) {
mockEmployee.id = theId;
deferred = q.defer();
deferred.promise.success = function(fn) {
return deferred.promise.then(fn);
};
//return deferred.promise;
deferred.promise.error = function(fn) {
return deferred.promise.fail(fn);
};
return deferred.promise;
}
};
emp = {
id : 10
};
mockModalInstance = {
isClosed : false,
close : function() {
mockModalInstance.isClosed = true
}
};
});
beforeEach(inject(function($controller, $rootScope, $q) {
scope = $rootScope.$new();
q = $q;
$controller('ResetPwdCtrl', {
'$scope' : scope,
'$modalInstance' : mockModalInstance,
'Employee' : mockEmployee,
'emp' : emp
});
}));
it("confirm", function() {
scope.confirm();
deferred.resolve();
scope.$root.$digest();
expect(mockModalInstance.isClosed).toEqual(true);
});
it("confirm2", function() {
scope.confirm();
deferred.reject({errorObject:[{type: 'danger', statusCode: 401,text: statusCode}]});
scope.$root.$digest();
});
});
在運行我收到以下錯誤測試:
復位其命令pwd確認< < <失敗! *類型錯誤! '未定義' 不是一個函數(近 '......})錯誤(函數(errorObjec ...')在resetPwdCtrl.js
復位其命令pwd CONFIRM2 < < <故障 *類型錯誤:'undefined'不是函數(接近'...})。resetPwdCtrl.js中的error(function(errorObjec ...)
我沒有得到這個錯誤online.Please幫助很多的幫助!