Жасмин - Как шпионить за вызовом функции внутри функции?
В моем контроллере следующее:
$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();
});
Как это можно сделать?
Ответы
Ответ 1
По умолчанию, когда вы используете spyOn
с jasmine, он издевается над этой функцией и фактически ничего не выполняет в ней. Если вы хотите протестировать дальнейшие вызовы функций внутри, вам нужно вызвать .andCallThrough()
, например:
spyOn($scope, 'addRangesAndSquare').andCallThrough();
который должен это сделать.