0
第一次,我正在写一个问题堆栈;) 我有一个问题,以测试$ 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();
});
});
但人缘发送给我这个错误:
Error: Expected a spy, but got Function.
我希望有人能帮助我。)
泰您的回复!但是什么是'sinon'?我不明白...;) –
Sinonjs.org只是间谍,存根或模拟Javascript的不同方式。您可以使用Jasmine,而不是用Jasmine代码替换sinon的用法。 –