View source Improve this doc

angular.mock.inject
API in module ng

Description

NOTE: This function is also published on window for easy access.

The inject function wraps a function into an injectable function. The inject() creates new instance of $injector per test, which is then used for resolving references.

See also module

Example of what a typical jasmine tests looks like with the inject method.


  angular.module('myApplicationModule', [])
      .value('mode', 'app')
      .value('version', 'v1.0.1');


  describe('MyApp', function() {

    // You need to load modules that you want to test,
    // it loads only the "ng" module by default.
    beforeEach(module('myApplicationModule'));


    // inject() is used to inject arguments of all given functions
    it('should provide a version', inject(function(mode, version) {
      expect(version).toEqual('v1.0.1');
      expect(mode).toEqual('app');
    }));


    // The inject and module method can also be used inside of the it or beforeEach
    it('should override a version and test the new version is injected', function() {
      // module() takes functions or strings (module aliases)
      module(function($provide) {
        $provide.value('version', 'overridden'); // override version here
      });

      inject(function(version) {
        expect(version).toEqual('overridden');
      });
    ));
  });

Usage

angular.mock.inject(fns);

Parameters

ParamTypeDetails
fns...Function

any number of functions which will be injected using the injector.