Come si può prendere in giro un semplice Factory in AngularJs che restituisce dati statici in un test dell'unità Karma
?Angularjs prova fabbrica semplice che restituisce dati statici
ho questo semplice fabbrica, che per il bene di esempio restituire i dati statici:
angular.module('conciergeApp.services')
.factory('CurrentUser', function() {
return {
id: 1,
hotel_id: 1,
}
});
Mi piacerebbe sapere come scrivere un test Karma
per questo?
Finora, ho questo codice, ma id non funziona:
describe('ReplyCtrl', function() {
beforeEach(module('conciergeApp'));
beforeEach(module(function($provide) {
$provide.service('CurrentUser', function() {
return 1;
});
}));
//Getting reference of the mocked service
var mockUtilSvc;
inject(function(CurrentUser) {
mockUtilSvc = CurrentUser;
});
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('ReplyCtrl', {
$scope: scope
});
}));
it('should return value from mock dependency', inject(function(mockUtilSvc) {
expect(mockUtilSvc()).toEqual(1);
}));
});
Questo è il messaggio di errore che sto ricevendo:
Firefox 41.0.0 (Mac OS X 10.10.0) ReplyCtrl should return value from mock dependency FAILED
Error: [$injector:unpr] Unknown provider: mockUtilSvcProvider <- mockUtilSvc
Hist prima "iniettare" è anche nel posto sbagliato.Dovrebbe averlo in un 'beforeEach' – Phil
@Phil True, lo ho menzionato nel passaggio 4, probabilmente non molto chiaro. lascia che lo aggiorni Grazie. – PSL
@PSL ottima risposta, e grazie per la spiegazione approfondita. Questo rende molto più pulito ciò che sta succedendo qui e la logica alla base di come impostare questo test di simulazione. Grazie! –