初めてスタックに関する質問を書いています;) $mdSidenav (Angular マテリアル コンポーネント。https://material.angularjs.org/ を参照) をテストする際に問題があります。私のコントローラーには次のようなものがあります:
$scope.toggleRight = function() {
$mdSidenav('right').toggle();
};
テストしたいです。したがって、テストファイルでは、まず、このオブジェクトのモックを作成しました:
var $mdSidenav = function(test){
return {
toggle: function(){
return true;
}
};
};
beforeEach(inject(function ($controller) {
$scope = $rootScope.$new();
createController = function () {
return $controller('headerCtrl', {
'$scope': $scope,
'$mdSidenav': $mdSidenav
});
};
}));
それから私はそれをテストしようとしています:
describe('toggleRight method', function(){
beforeEach(function(){
spyOn($mdSidenav('right'), 'toggle').and.callThrough();
});
it('Should toggleRight open/close', function(){
$scope.toggleRight();
expect($mdSidenav('right').toggle).toHaveBeenCalled();
});
});
しかし、カルマは私にこのエラーを送ります:
エラー: スパイを予期していましたが、機能を取得しました。
誰かが私を助けてくれることを願っています;)