0

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

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

1 回答 1

0

我发现的解决方案似乎非常简单和好:

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();
});
于 2013-07-11T21:00:57.960 回答