0
我有一个函数:茉莉花测试情况下,当一个函数被调用的if语句
function getNames() {
var ids = [];
var checkAttr = function (array, attr, value) {
for (var i = 0; i < array.length; i++) {
if (array[i][attr] === value) {
return false;
}
}
return true;
};
for (var i = 0; i < result.length; i++) {
var selected = result[i];
if (checkAttr($scope.names, "name", selected.name) && ids.indexOf(selected.id) === -1 && selected.myInfo && selected.name !== "") {
$scope.fundNames.push({
name: selected.name,
id: selected.id
});
ids.push(selected.id);
}
}
...
}
我想写一个测试,检查,我现在用的是checkAttr函数来检查这两个名称和ID删除重复。但我不知道如何。我尝试使用spyOn,但不断收到错误。
我想要的东西,内容是这样的:
it('should check the name and id to remove duplicates', function() {
//do something here
});
您只能在您有权访问的对象上公开作为方法的'spyOn'函数。例如,如果'myObj.myFunc'是一个函数,我可以窥探它作为'spyOn(myObj,'myFunc')'。由于checkAttr在'getNames'中是私有的,因此您无法直接访问它。像@anied说的 –
,你不能窥探那些私密的方法。你能够给我们多一点代码来合作吗? 'getNames'究竟使用了多少?它可以变成'$ scope.getNames' –