大佬教程收集整理的这篇文章主要介绍了如何测试与茉莉花AngularJS控制器调用服务方法返回承诺,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图断言一个控制器调用一个服务方法。服务方法返回承诺。控制器如下所示:
angular.module('test',[]) .controller('ctrl',['$scope','svc',function ($scope,svC) { $scope.data = []; svc.query() .then(function (data) { $scope.data = data; }); }]);
当服务方法的延迟被解析时,我想测试数据被分配给作用域。我创建了一个模拟的服务,单元测试看起来像这样:
describe('ctrl',function () { var ctrl,scope,svc,def,data = [{name: 'test'}]; beforeEach(module('test')); beforeEach(inject(function($controller,$rootScope,$q) { svc = { query: function () { def = $q.defer(); return def.promise; } }; scope = $rootScope.$new(); controller = $controller('ctrl',{ $scope: scope,svc: svc }); })); it('should assign data to scope',function () { spyOn(svc,'query').andCallThrough(); deferred.resolve(data); scope.$digest(); expect(svc.query).toHaveBeenCalled(); expect(scope.data).toBe(data); }); });
我遵循this指南来嘲笑单位测试的承诺。
我究竟做错了什么?
beforeEach(inject(function($controller,$q) { svc = { query: function () { def = $q.defer(); return def.promise; } }; spyOn(svc,'query').andCallThrough(); scope = $rootScope.$new(); controller = $controller('ctrl',svc: svc }); }));
以上是大佬教程为你收集整理的如何测试与茉莉花AngularJS控制器调用服务方法返回承诺全部内容,希望文章能够帮你解决如何测试与茉莉花AngularJS控制器调用服务方法返回承诺所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。