2013-07-11 47 views
0

我有我的自定義角度服務,它有一個方法可以處理$scope.$watch,是否可以對它進行單元測試?我發現使用控制器測試角度服務

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

回答

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

嘿抱歉地說,我不能驗證這一點,我只是想給你一些方向上的一個因爲我認爲也許你剛剛沒有看到文檔中的測試(並且大多數角度文檔似乎對包括測試在內,即使其他部分缺乏也是如此)。我會刪除我的答案,以便這個人得到關注,並可以由具有更多工作知識的人審查。 – shaunhusain

相關問題