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' –