Javascript Jasmine Karma单元测试json.parse函数
我试图用Jasmine框架对这一行javascript进行单元测试:Javascript Jasmine Karma单元测试json.parse函数,javascript,json,angularjs,jasmine,karma-runner,Javascript,Json,Angularjs,Jasmine,Karma Runner,我试图用Jasmine框架对这一行javascript进行单元测试: $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.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;
};
当我开始这样编写单元测试并调用函数时:
it('ProfilesCtrl:validerStyleTag should set validerStyleTag ', inject(function() {
expect($scope.validerStyleTag).toBeDefined();
$scope.validerStyleTag();
}));
karma给了我一个意外的错误:TypeError:试图在workFn(/home/app/bower\u components/angular mocks/angular mocks.js:2107)分配给只读属性
想法或反馈是非常受欢迎的 您是否将PhantomJS与Angular的“旧”版本一起使用?导致该错误的错误最近已被修复。如果我读得正确的话,看起来它是在1.2.12中修复的
您是否将PhantomJS与Angular的“旧”版本一起使用?导致该错误的错误最近已被修复。如果我读得正确的话,看起来它是在1.2.12中修复的@CraigSquire谢谢你的回答,那么我该如何更新我的Angularjs版本呢?还有phantomJs版本?顺便说一句,实际上是有缺陷的角度模拟。让我知道更新是否修复了它。很好。上周我遇到了同样的问题。
it('ProfilesCtrl:validerStyleTag should set validerStyleTag ', inject(function() {
expect($scope.validerStyleTag).toBeDefined();
$scope.validerStyleTag();
}));