console.log in karma angularjs 方法测试
console.log in karma angularjs method testing
我有点困惑为什么我得到 undefined
作为我正在测试的函数的 return 值。
这是我正在测试的功能:
$scope.entityItemsIntoObjectChecked = function (entityItems) {
newEntityWithChecked = entityItems.map(function (value) {
return { "val": value, "checked": false };
});
shareDataService.setEntityArray(newEntityWithChecked);
}
和我的测试套件的一部分:
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))
输出我的数组,该数组基于我之前在行 mainScope.entityItemsIntoObjectChecked(dummyEntityArray);
中传入的数组 dummyEntityArray
但我在 console.log 上得到了 undefined
。这是为什么?
您的 $scope.entityItemsIntoObjectChecked
方法没有 return 任何东西,因此 return 值将是 undefined
.
您可以 return 方法中的 newEntityWithChecked
数组或监视您的 shareDataService.setEntityArray
方法以验证是否正在传递预期的数组。
您可以在此处阅读有关间谍的文档:http://jasmine.github.io/2.0/introduction.html#section-Spies
我有点困惑为什么我得到 undefined
作为我正在测试的函数的 return 值。
这是我正在测试的功能:
$scope.entityItemsIntoObjectChecked = function (entityItems) {
newEntityWithChecked = entityItems.map(function (value) {
return { "val": value, "checked": false };
});
shareDataService.setEntityArray(newEntityWithChecked);
}
和我的测试套件的一部分:
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))
输出我的数组,该数组基于我之前在行 mainScope.entityItemsIntoObjectChecked(dummyEntityArray);
dummyEntityArray
但我在 console.log 上得到了 undefined
。这是为什么?
您的 $scope.entityItemsIntoObjectChecked
方法没有 return 任何东西,因此 return 值将是 undefined
.
您可以 return 方法中的 newEntityWithChecked
数组或监视您的 shareDataService.setEntityArray
方法以验证是否正在传递预期的数组。
您可以在此处阅读有关间谍的文档:http://jasmine.github.io/2.0/introduction.html#section-Spies