【问题标题】:Stub angular service in directive unit test指令单元测试中的存根角服务
【发布时间】:2015-08-23 06:34:58
【问题描述】:

我有一个这样的指令:

app.directive('myDirective', ['my', function(myService){
return {
    restrict: 'E',
    scope: {
        resourcePath: '='
    },
    priority: 999,
    transclude: true,
    template: '<ng-transclude ng-if="func()"></ng-transclude>',
    link: function($scope){
        $scope.func = function(){
            return permissionsService.checkSomething(true);
        };
    }
};}]);

这就是服务:

angular.module('services.my', []).service('my', ['$http', function myService($http) {

//public:
this.checkSomething = function (param) {
    return param;
};}]);

如何存根 myService 并将其注入到指令依赖项中?

【问题讨论】:

    标签: angularjs unit-testing angularjs-directive angularjs-service stub


    【解决方案1】:

    对于控制器,您可以自己创建控制器。

    对于指令依赖,您必须使用 $provide 覆盖默认实现并提供虚拟依赖

    beforeEach(module(function ($provide) {
        $provide.service('my', function () { 
            this.checkSomething= function() { };
        });
    }));
    

    【讨论】:

      猜你喜欢
      • 2019-03-28
      • 2015-04-14
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多