2014-02-19 2 views
0

Я пытаюсь модульного тестирование этой линии JavaScript с каркасом Жасмина:тест жасмин Карма блока JSON.parse функции

$scope.validerStyleTag = function() { 
    $scope.currentTag = JSON.parse($scope.tagList); 
    for (var i = $scope.listTags.length - 1; i >= 0; i--) { 
     if ($scope.listTags[i]._id === $scope.currentTag._id) { 
      $scope.tagID = $scope.listTags[i]._id; 
      $scope.listTags[i].disabled = true; 
      break; 
     } 
    } 

    // var textestyler = angular.element(document.querySelector('#style-affected-add'))[0].outerHTML; 
    // var debut = textestyler.substring(textestyler.indexOf('<p'), textestyler.indexOf('>') + 1); 
    // var texteFinal = debut + '</p>'; 
    var mytext = '<p data-font="' + $scope.policeList + '" data-size="' + $scope.tailleList + '" data-lineheight="' + $scope.interligneList + '" data-weight="' + $scope.weightList + '" data-coloration="' + $scope.colorList + '"> </p>'; 


    $scope.tagStyles.push({ 
     id_tag: $scope.currentTag._id, 
     style: mytext, 
     label: $scope.currentTag.libelle, 
     police: $scope.policeList, 
     taille: $scope.tailleList, 
     interligne: $scope.interligneList, 
     styleValue: $scope.weightList, 
     coloration: $scope.colorList, 

    }); 
    angular.element($('.shown-text-add').text($('.shown-text-add').text())); 
    angular.element($('#style-affected-add').removeAttr('style')); 
    $scope.colorationCount = 0; 
    $scope.tagList = null; 
    $scope.policeList = null; 
    $scope.tailleList = null; 
    $scope.interligneList = null; 
    $scope.weightList = null; 
    $scope.colorList = null; 

}; 

проблема тестирования в первой строке:

$scope.currentTag = JSON.parse($scope.tagList); 

когда я начал писать мое модульное тестирование, как это и назвать свою функцию:

it('ProfilesCtrl:validerStyleTag should set validerStyleTag ', inject(function() { 
expect($scope.validerStyleTag).toBeDefined(); 
$scope.validerStyleTag(); 


})); 

карма дает мне неожиданную ERRO r: TypeError: Попытка присвоить свойство readonly на workFn (/home/app/bower_components/angular-mocks/angular-mocks.js:2107)

идеи или отзывы более чем приветствуются!

+1

Вы используете PhantomJS с "старой" версией углового? Была ошибка, которая вызвала эту ошибку, которая была исправлена ​​в последнее время. Похоже, он был исправлен в 1.2.12, если я правильно прочитал. https://github.com/angular/angular.js/pull/5047 –

+0

@CraigSquire THANK YOU для вашего ответа, так как я могу обновить мою версию Angularjs? и версия phantomJs? – badaboum

+0

@CraigSquire Я использую Angular v 1.2.1 – badaboum

ответ

1

Вы используете PhantomJS со «старой» версией Angular? Была ошибка, которая вызвала эту ошибку, которая была исправлена ​​в последнее время. Похоже, он был исправлен в 1.2.12, если я правильно прочитал.

https://github.com/angular/angular.js/pull/5047

Смежные вопросы