Q:

How to recreate AngularJS service for testing purposes?

I would like to test myService initialisation which could be different depends on conditions:
service('myService', function(internalService){
   if(internalService.param){ init1(); }
   else { init2(); }

   //...
});

I can mock internalService, but how to recreate myService?

A:

Services are instantiated by the injector (inject(...)) after the configuration phase. To test your initialization, all you need to do is setup differently in each tests. That is, rather than instantiating your service in a beforeEach block, do it in the test. 
For instance, you could test the side effects of instantiating with init1 by mocking the internalService to have param: true
describe('Unit: myService', function() {
  it('should perform init1 if internalService.param', function() {
    var mockInternalService = {
      param: true,
    };

    // config phase (mocking)
    module('app', function($provide) {
      $provide.constant('internalService', mockInternalService);
    });

    inject(function($injector) {
      myService = $injector.get('myService');

      // assert side effects from init1();
    });
  });
});

To test the side effects of init2, just mock the internalService to param: false
  it('should perform init2 if !internalService.param', function() {
    var mockInternalService = {
      param: false,
    };

    // config phase (mocking)
    module('app', function($provide) {
      $provide.constant('internalService', mockInternalService);
    });

    inject(function($injector) {
      myService = $injector.get('myService');

      // assert side effects from init2();
    });
  });

EDIT: Of course, if you want to make multiple tests for each configuration, you can create two describe blocks with different beforeEach.
  describe('Unit: myService', function() {
    var myService;

    describe('When instantiated with `init1`', function() {
      beforeEach(config(true));
      beforeEach(inject(injections));

      it('should do X');
    });

    describe('When instantiated with `init2`', function() {
      beforeEach(config(false));
      beforeEach(inject(injections));

      it('should do Y');
    });

    function config(param) {
       return function() { 
         var mockInternalService = {
           param: param,
         };

         // config phase (mocking)
         module('app', function($provide) {
           $provide.constant('internalService', mockInternalService);
         });
      };
    }

    function injections($injector) {
      myService = $injector.get('myService');
    }
  });

