[英]Jasmine test complaining about 'undefined' is not an object
我已經檢查了與我的問題類似的其他問題。 但是這個問題顯然在每種情況下都是不同的。 Angular Jasmine Test抱怨TypeError:在DiscoverDependentFields中,“未定義”不是對象(正在評估“ fields.forEach”)
這是我的discoverDependentFields函數
discoverDependentFields($scope.response.Fields);
function discoverDependentFields(fields) {
fields.forEach(function (field) {
field.DependencyFieldEvaluated = '';
if (field.DependencyField) {
var foundFields = fields.filter(function (fieldToFind) { return fieldToFind.Name === field.DependencyField; });
if (foundFields.length === 1) {
field.DependencyFieldEvaluated = foundFields[0];
}
}
});
}
在測試中我有這個
this.controller('MyController', {
'$scope': this.scope,
}
});
this.scope.response.Fields = [
{
Name: "UserIdentity",
Value: {
"FirstName": "John"
},
PropertyName: "User.Identity"
}
];
我在這樣的指令中的函數中使用field.DependencyFieldEvaluated的值
function dependencyMet(field) {
var dependentField = field.DependencyFieldEvaluated;
var met = compareToDependencyValue(field, dependentField.Value);
return met;
}
我不知道為什么要抱怨
如果
discoverDependentFields($scope.response.Fields);
是控制器中的一行,那么需要在實例化控制器之前設置$scope.response.Fields
數據。 換句話說,將測試中的操作順序交換為
this.scope = {};
// or maybe this.scope = $rootScope.$new()
this.scope.response = {
Fields: [{
Name: "UserIdentity",
Value: {
FirstName: "John"
},
PropertyName: "User.Identity"
}]
};
this.controller('MyController', {
$scope: this.scope,
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.