我正在使用 Karma、Mocha、Sinon 和 Chai 进行 Angular 单元测试,并且试图弄清楚如何模拟我在控制器中使用$location
.
我的控制器执行以下重定向:
$location.path('home');
我想尝试使用间谍来模拟重定向,这就是我目前正在做的事情:
describe('Auth Controller', function() {
var controller;
var $location;
beforeEach(function() {
bard.appModule('app.auth');
bard.inject('$controller', '$rootScope', '$location');
});
beforeEach(function() {
$location = {
path: sinon.spy().returned('Fake location')
};
controller = $controller('authCtrl', { $scope: $rootScope, $location: $location });
});
it('should take you to the metrics page on successful login', function() {
expect($location.path).to.have.been.calledWith("Fake location");
});
});
我收到以下错误:
TypeError: false 不是间谍或对间谍的调用!
我不确定如何正确地模拟这个,或者我是否以正确的方式来处理这个。
对单元测试专家的任何帮助表示赞赏。提前致谢!