appControllers.controller("TaskAddController",function ($scope,$timeout,taskservicE) { $scope.task = {}; $scope.messages = { error: false }; $scope.actions = { save : function() { if ($scope.frmAddTask.$valid) { taskservice.insert($scope.task) .then( function() { $scope.messages.success = true; $scope.task = {}; $scope.frmAddTask.$setPrisTine(); $timeout(function() { $scope.messages.success = false; },3000); },function() { $scope.messages.error = true; } ); } else { $scope.messages.error = true; } } }; });
有了这个单元测试: –
/// <reference path="../../../../src/tasks.web/scripts/angular-1.2.10.js" /> /// <reference path="../../../../src/tasks.web/scripts/angular-route-1.2.10.js" /> /// <reference path="../../../../src/tasks.web/scripts/app.js" /> /// <reference path="../../../../src/tasks.web/scripts/services.js" /> /// <reference path="../../../../src/tasks.web/scripts/controllers.js" /> /// <reference path="../lib/angular/angular-mocks.js" /> describe("TaskAddController",function() { var createController,scope,deferred,mockTaskservice; beforeEach(function () { module('appControllers'); module('appservices'); inject(function ($rootScope,$q,taskservicE) { scope = $rootScope.$new(); scope.frmAddTask = { $valid: true }; deferred = $q.defer(); mockTaskservice = taskservice; spyOn(mockTaskservice,"insert").andReturn(deferred.promisE); }); inject(function ($controller) { createController = function () { return $controller("TaskAddController",{ $scope: scope,taskservice: mockTaskservice }); }; }); }); it("when actions.save is called then messages.success should be true",function () { var task = { title: "title",description: "Description" }; createController(); scope.task = task; scope.actions.save(); deferred.resolve("insert"); scope.$root.$digest(); expect(scope.messages.success).toEqual(true); }); });
消息TypeError:’undefined’的错误不是函数(评估’$scope.frmAddTask.$setPrisTine()’)
我假设这是因为单元测试只测试控制器,$scope.frmAddTask仅在视图存在时才存在.所以我的问题是如何正确地进行单元测试?
以上是大佬教程为你收集整理的如何使用$setPristine对AngularJS控制器进行单元测试全部内容,希望文章能够帮你解决如何使用$setPristine对AngularJS控制器进行单元测试所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。