Jak przetestować usługę AngularJS za pomocą Jasmine?

(Tutaj jest powiązane pytanie:Test Jasmine nie widzi modułu AngularJS)

Chcę tylko przetestować usługę bez ładowania początkowego Angular.

Patrzę na kilka przykładów i samouczek, ale nigdzie się nie wybieram.

Mam tylko trzy pliki:

myService.js: gdzie definiuję usługę AngularJS

test_myService.js: gdzie definiuję test Jasmine dla usługi.

specRunner.html: plik HTML z normalną konfiguracją jaśminu i gdzie importuję dwa poprzednie inne pliki oraz Jasmine, Angularjs i angular-mocks.js.

To jest kod usługi (działający zgodnie z oczekiwaniami, gdy nie testuję):

var myModule = angular.module('myModule', []);

myModule.factory('myService', function(){

    var serviceImplementation   = {};
    serviceImplementation.one   = 1;
    serviceImplementation.two   = 2;
    serviceImplementation.three = 3;

    return serviceImplementation

});

Próbując przetestować usługę w izolacji, powinienem mieć dostęp do niej i sprawdzić ich metody. Moje pytanie brzmi: jak mogę wstrzyknąć usługę w moim teście bez ładowania początkowego AngularJS?

Na przykład, jak mogę przetestować wartość zwróconą przez metodę usługi za pomocą Jasmine w ten sposób:

describe('myService test', function(){
    describe('when I call myService.one', function(){
        it('returns 1', function(){
            myModule = angular.module('myModule');
                    //something is missing here..
            expect( myService.one ).toEqual(1);
        })

    })

});

questionAnswers(4)

yourAnswerToTheQuestion