【问题标题】:Angularjs unit test isolated scope valueAngularjs 单元测试隔离范围值
【发布时间】:2015-06-11 01:04:09
【问题描述】:

我有一个如下所示的指令:

angular.directive('myDirective', ['$compile', function($compile){
    return {
        link: function(scope, element, attr, controller) {
            function update(){
                if(scope.value == "A"){
                    scope.desc = "Welcome";
                }else{
                    scope.desc = "Not Welcome";
                }
            }

            scope.$watch('value', function(newValue, oldValue) {
                update();
            },true);

            update();
        }
    };
}]);

如何编写一个单元测试来验证scope.value 中的更改将返回正确的scope.desc

【问题讨论】:

    标签: angularjs unit-testing jasmine


    【解决方案1】:

    基于来自this question的信息:

    // inject $rootScope and $compile in beforeEach
    it('should change desc on value change', function() {
      var scope = $rootScope.$new();
      var element = angular.element('<my-directive></my-directive>');
      element = $compile(element)(scope);
      $rootScope.$digest();
      var directiveScope = element.scope();
      expect(directiveScope.desc).toEqual("Not Welcome");
      directiveScope.value = 'A';
      $rootScope.$digest();
      epxect(directiveScope.desc).toEqual("Welcome");
    });
    

    Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多