angulartypescriptunit-testingjasmineangular2-testing

How to fix beforeEachProviders (deprecated on RC4)


Ive just upgraded Angular2 from RC3 to RC4 ...

import {
  expect, it, iit, xit,
  describe, ddescribe, xdescribe,
  beforeEach, beforeEachProviders, withProviders,
  async, inject
} from '@angular/core/testing';

In my unit test I have the following code ...

beforeEachProviders(() => [
    {provide: Router, useClass: MockRouter}
]);

This works fine but since moving to RC4 I have a deprecation warning on beforeEachProviders.

Anyone know what the new way of doing things is? Or should I import beforeEachProviders from somewhere else instead of '@angular/core/testing'?


Solution

  • You will need to import addProviders from @angular/core/testing.

    Instead of:

    beforeEachProviders(() => [
        {provide: Router, useClass: MockRouter}
    ]);
    

    You'll want to do this:

    beforeEach(() => {
        addProviders([
            {provide: Router, useClass: MockRouter}
        ])
    });
    

    Source: RC4 Changelog