Я пытаюсь протестировать двухстороннюю привязку в пользовательской директиве с использованием жасмина.Можно ли проверить двустороннюю привязку scope.trains в директиве с использованием жасмина?
Это ЯШИ:
angular.module('MyServiceModule',[]);
angular.module('MyServiceModule').controller('MyController',MyController);
angular.module('MyServiceModule').directive('trainDirective',trainDirective);
function MyController($http)
{
console.log('MyController');
vm = this;
vm.openCreateQuoteScreen = function(trainName)
{
alert("train type"+trainName);
}
vm.trainList = [
{"trainName":"Shatabdi"},
{"trainName":"Rajdhani"}
];
}
function trainDirective()
{
return{
restrict: 'E',
template: '<div>TRAIN LIST</div>'+
'<ul data-ng-repeat="train in trains">'+
'<li>{{ train.trainName }}</li></ul>',
scope: {
trains: '=',
},
};
}
Это HTML:
<div ng-app="MyServiceModule" ng-controller="MyController as MyCtrl" >
<train-directive trains="MyCtrl.trainList"> </train-directive>
</div>
Как я могу записать данные испытания 2-обязательную силу в ниже тесте:
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');
});
Что я Я здесь делаю неправильно? Может ли кто-нибудь объяснить, как я могу его исправить?
Есть ли способ, что я могу проверить его с синтаксисом «controllerAs»? –
@A_J 'controllerAs' функциональность проверена компанией Google, вы можете занять свое слово. Эта спецификация специально проверяет привязку «train-directive» и не должна знать «MyController». Хорошая идея в отношении директив с изолированной областью заключается в том, что их можно использовать и тестировать изолированно, нет необходимости воссоздавать для них условия окружающей среды. – estus