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的用法。 –