我第一次在Stack上写问题;)我有一个测试$ mdSidenav的问题(角度材料组件。请参见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(); }); });
但是因果报应将这个错误发送给我:
错误:应该是间谍,但是得到了功能。
我希望有人可以帮助我;)
我第一次在Stack上写问题;)我在测试$ mdSidenav(角度材料组件。请参阅https://material.angularjs.org/)时遇到问题。在我的控制器中,我有类似以下内容:$ ...
您可以尝试其他方法,使用$ provide和一个匿名模块来注入模拟。