Angular 単体テストに Karma、Mocha、Sinon、Chai を使用しています。コントローラーで行っているリダイレクトを .xml でモックする方法を見つけようとしてい$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 はスパイでもスパイへの呼び出しでもありません!
これを正しく嘲笑する方法、またはこれを正しい方法で行っているかどうかはわかりません。
単体テストの専門家の助けをいただければ幸いです。前もって感謝します!