【问题标题】:Testing angular services with controllers使用控制器测试角度服务
【发布时间】:2013-07-11 20:23:58
【问题描述】:

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

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

【问题讨论】:

    标签: javascript unit-testing angularjs angularjs-scope


    【解决方案1】:

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

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

    【讨论】:

    • 嘿抱歉说我不能验证这一点我只是想给你一些方向,因为我想也许你只是没有在文档中看到测试(以及大多数即使缺少其他部分,角度文档似乎也很适合包含测试)。我将删除我的答案,以便引起注意,并由具有更多工作知识的人审查。
    猜你喜欢
    • 2016-01-09
    • 2017-02-27
    • 1970-01-01
    • 2015-03-22
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多