是否可以使用jasmine在指令中测试scope.trains的双向绑定?

时间:2016-06-30 06:45:46

标签: angularjs jasmine

我正在尝试使用jasmine在自定义指令中测试双向绑定。

这是js:

<div ng-app="MyServiceModule" ng-controller="MyController as MyCtrl" >
     <train-directive trains="MyCtrl.trainList"> </train-directive>
</div>

这是html:

describe('my directive', function(){
beforeEach(module('MyServiceModule'));

beforeEach(function(){  
        element=angular.element('<train-directive trains="MyCtrl.trainList"> </train-directive>');
         compiledElement = $compile(element)(scope);
        scope.$digest();
    });
});
it('should test two-way data binding',function(){
    element.isolateScope().trains = "My trains";


      //Now I want to test if the same value is reflected in the parent scope's trainList variable.

expect(scope.trainList).toEqual('My trains');

    });

如何在下面的测试中编写测试双向数据绑定:

$(document).ready(function() {
        $('button').click(function() {
        $('.sub-nav').toggleClass('visible');
        });
    });

我在这里做错了什么?任何人都可以解释我如何纠正它?

1 个答案:

答案 0 :(得分:0)

绑定不会神奇地更新,它们会在摘要上更新。 MyCtrl.trainList应更改为trainList,因为scope不属于具有controllerAs语法的真实控制器,并且没有MyCtrl对象。

应该是

   element.isolateScope().trains = "My trains";
   scope.$digest();
   ...