.l-main-section
  h2(class="function export") inject

  p <code>(tokens: List, fn: Function)</code>

  p.location-badge.
    exported from <a href="/angular2/test.html">angular2/test</a>

  :markdown
    Allows injecting dependencies in `beforeEach()` and `it()`.
    
    Example:
    
    ```
    beforeEach(inject([Dependency, AClass], (dep, object) => {
      // some code that uses `dep` and `object`
      // ...
    }));
    
    it('...', inject([AClass, AsyncTestCompleter], (object, async) => {
      object.doSomething().then(() => {
        expect(...);
        async.done();
      });
    })
    ```
    
    Notes:
    - injecting an `AsyncTestCompleter` allow completing async tests - this is the equivalent of
      adding a `done` parameter in Jasmine,
    - inject is currently a function because of some Traceur limitation the syntax should eventually
      becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`