繁体   English   中英

使用控制器测试角度服务

[英]Testing angular services with controllers

我有自定义的角度服务,该服务具有一种使用$scope.$watch处理的方法,可以对其进行单元测试吗?

angular.module('moduleName', []).factory('$name', function () {
  return {
     bind: function ($scope, key) {
       $scope.$watch(key, function (val) {
         anotherMethod(key, val);
       }, true);
     },
     ...
  };
});

我发现的解决方案似乎非常简单而且不错:

beforeEach(function () {
    inject(function ($rootScope) {
        scope = $rootScope.$new();

        scope.$apply(function () {
            scope.value = true;
        });

        $name.bind(scope, 'value');

        scope.$apply(function () {
            scope.value = false;
        });
    });
});

beforeEach(function () {
    value = $name.get('value');
});

it('should have $scope value', function () {
    expect(value).toBeFalsy();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM