以下内容位于我的 Controller 中:
$scope.addRangesAndSquare = function() {
$scope.addLeftRange();
$scope.addCenterSquare();
$scope.addRightRange();
}
我想监视 $scope.addLeftRange()
,这样当 $scope.addRangesAndSquare
被调用时,$scope.addLeftRange() 也被调用
:
it('expect addLeftRange to be called after calling addRangesAndSquare', function () {
spyOn(scope ,'addRangesAndSquare');
spyOn(scope, 'addLeftRange');
scope.addRangesAndSquare();
expect(scope.addLeftRange).toHaveBeenCalled();
});
如何做到这一点?
最佳答案
默认情况下,当您将 spyOn
与 jasmine 一起使用时,它会模拟该函数,并且实际上不会执行其中的任何内容。如果您想测试其中的进一步函数调用,则需要调用 .andCallThrough()
,如下所示:
spyOn($scope, 'addRangesAndSquare').andCallThrough();
应该可以了。
关于javascript - Jasmine - 如何监视函数内的函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17705121/