我试着用jasmine测试下面的代码。我不确定如何伪造/传递角形式的登录功能。任何正确方向上的帮助/指示都会很有帮助。
问候,Sameer
'use strict';
angular.module('myApp')
.controller('SignupCtrl', function ($scope, Auth, $location) {
$scope.user = {};
$scope.errors = {};
$scope.register = function(form) {
$scope.submitted = true;
if(form.$valid) {
Auth.createUser({
name: $scope.user.name,
email: $scope.user.email,
password: $scope.user.password
})
.then( function() {
// Account created, redirect to home
$location.path('/');
})
.catch( function(err) {
err = err.data;
$scope.errors = {};
// Update validity of form fields that match the mongoose errors
angular.forEach(err.errors, function(error, field) {
form[field].$setValidity('mongoose', false);
$scope.errors[field] = error.message;
});
});
}
};
});
要记住,这是注释的解决方案是可以的,因为您不应该需要$setValidity()是否工作。你应该隔离测试你的控制器在函数被触发或返回某个值时是否做了它应该做的事情。JB Nizet应该把他的评论放到一个答案上。