web-dev-qa-db-ja.com

スパイを期待していましたが、未定義になりましたか?

ジャスミンスパイに頭を悩ませようとすると、これが私のテストのようになります。

  $scope.switchTurns = function () {
    $scope.playerTurn = !$scope.playerTurn;
    console.log($scope.centrePileCards.length);
    if ($scope.playerTurn == 1) {
      $scope.pickCard();
    }
  }

私のユニットテストは次のようになります。

it('should pick one card',function(){
    var controller = createController();
    spyOn(scope,'pickCard')
    scope.switchTurns();
    scope.playerTurn=1;
    expect(scope.pickCard()).toHaveBeenCalled();

  })

私は今このエラーを受け取っています:

Error : Expected a spy , but got undefined.

提案?

11
Pindakaas

scope.pickCard()はメソッドの結果です。あなたの場合はundefinedです。 spyOnを使用している場合は、次のように記述してください。

expect(scope.pickCard).toHaveBeenCalled();

24
zucker