Подтвердить что ты не робот

Жасмин - Как шпионить за вызовом функции внутри функции?

В моем контроллере следующее:

$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();
});

Как это можно сделать?

4b9b3361

Ответ 1

По умолчанию, когда вы используете spyOn с jasmine, он издевается над этой функцией и фактически ничего не выполняет в ней. Если вы хотите протестировать дальнейшие вызовы функций внутри, вам нужно вызвать .andCallThrough(), например:

spyOn($scope, 'addRangesAndSquare').andCallThrough();

который должен это сделать.