私のコントローラーには次のものがあります:
_$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();
それはそれを行う必要があります。