Jak wyśmiewać prosty Fabryka w AngularJs, który zwraca statyczne dane w jednostce test Karma
?Angularjs przetestować proste fabryki, które zwracają dane statyczne
Mam ten prosty zakład, że przez wzgląd na przykład zwrócić dane statyczne:
angular.module('conciergeApp.services')
.factory('CurrentUser', function() {
return {
id: 1,
hotel_id: 1,
}
});
Chciałbym wiedzieć, jak napisać Karma
test na to?
tej pory mam tego kodu, ale id nie działa:
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);
}));
});
To jest komunikat o błędzie, że byłem coraz:
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 first 'inject' jest również w niewłaściwym miejscu.Powinien mieć to w 'beforeEach' – Phil
@Phil True, wspomniałem o tym w kroku 4, prawdopodobnie niezbyt jasne. pozwól mi go zaktualizować. Dziękuję Ci. – PSL
@PSL świetna odpowiedź, i dziękuję za dokładne wyjaśnienie. Dzięki temu jest o wiele bardziej przejrzyste, co się tutaj dzieje, i logika stojąca za tym, jak skonfigurować ten próbny test serwisowy. Dziękuję Ci! –