我有點困惑,爲什麼我得到undefined
作爲我正在測試的函數的返回值。karma中的console.log angularjs方法測試
這裏是我測試的功能:基於陣列dummyEntityArray
我陣列
it("should arrange an array into ovject with extra value for entities + depots", inject(function (shareDataService) {
var dummyEntityArray = ["ent1", "ent2", "ent3"];
var expectedObjectArray = [{ val: "ent1", checked: false }, { val: 'ent2', checked: false }, { val: 'ent3', checked: false }];
expect(mainScope.entityItemsIntoObjectChecked).toBeDefined();
mainScope.entityItemsIntoObjectChecked(dummyEntityArray);
console.log(mainScope.entityItemsIntoObjectChecked(dummyEntityArray))
}))
我期待線路console.log(mainScope.entityItemsIntoObjectChecked(dummyEntityArray))
輸出:
$scope.entityItemsIntoObjectChecked = function (entityItems) {
newEntityWithChecked = entityItems.map(function (value) {
return { "val": value, "checked": false };
});
shareDataService.setEntityArray(newEntityWithChecked);
}
和部分我的測試套件我已經通過在線mainScope.entityItemsIntoObjectChecked(dummyEntityArray);
但我在console.log上得到undefined
。爲什麼是這樣?
賓果遊戲,歡呼的人。新測試:D – xeon48
是否可以在茉莉花中調用一個函數併爲它分配一個變量?例如,我想'mainScope.entityItemsIntoObjectChecked(dummyEntityArray);'被分配給一個var,然後傳遞到我的下一個測試步驟,即expect(mainScope.methodWhichChangesArrayToObject(mainScope.entityItemsIntoObjectChecked(dummyEntityArray))。toEqual(<<對象在數組中>>)' – xeon48
下一步你的意思是另一個規範嗎?通常不建議讓一個規範依賴於另一個規範。你可以在你想要測試的規範中調用必要的方法'methodWhichChangesArrayToObject' – Saravana