如何对我的控制器进行单元测试,控制器使用其中的表格?

时间:2014-06-21 16:36:08

标签: angularjs jasmine karma-jasmine

我正在尝试使用jasmine测试下面的代码。我不知道如何伪造/传递角形式到登录功能。任何正确方向的帮助/指针都会非常有用。

此致 萨米尔

'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;
          });
        });
      }
    };
  });

1 个答案:

答案 0 :(得分:0)

很高兴记住,这是评论的解决方案是可以的,因为您不需要$ setValidity()是否正常工作。你应该想要隔离来测试你的控制器在触发该函数或返回某个值时执行它应该做的事情。 JB Nizet应该把他的评论转移到答案上。