25

以下は私のコントローラーにあります:

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

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

4

1 に答える 1

40

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

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

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

于 2013-07-17T17:03:48.097 に答える