我有点困惑,为什么我得到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