web-dev-qa-db-ja.com

ジャスミン-関数内の関数呼び出しをスパイする方法?

私のコントローラーには次のものがあります:

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

これをどのように行うことができますか?

23
criver.to

デフォルトでは、spyOnjasmineで使用すると、その機能を模倣し、実際にその中で何も実行しません。内でさらに関数呼び出しをテストする場合は、次のように.andCallThrough()を呼び出す必要があります。

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

それはそれを行う必要があります。

35
UnicodeSnowman