A. Duff
A. Duff

Reputation: 4309

How to fix "Cannot read injector property of null" bug in Angular 2?

This question describes how to update Angular 2 after the beforeEachProviders function was deprecated.

But having done that, I get the error Cannot read property 'injector' of null

My test is relatively basic:

import { inject, addProviders } from '@angular/core/testing';
import { MyComponent } from './my.component';

describe('Foo', () => {
    beforeEach(() => {
        addProviders([{
            provide: MyComponent,
            useClass: MyComponent
        }]);
    });

    it('foo', inject([MyComponent], (e: MyComponent) => {
        expect(true).toEqual(true);
    }));
});

Upvotes: 3

Views: 4744

Answers (1)

Dave
Dave

Reputation: 3261

addProviders is also deprecated is favor of TestBed.

import { TestBed, async } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { MyComponent } from './my.component';

// This should only be called once.
TestBed.initTestEnvironment(
    BrowserDynamicTestingModule, platformBrowserDynamicTesting());

describe('Foo', () => {
    beforeEach(() => {
      TestBed.configureTestingModule({
        declarations: [MyComponent],
      });
      TestBed.compileComponents();
    });

    it('foo', async(() => {
        let fixture = TestBed.createComponent(MyComponent);
        fixture.detectChanges();
        expect(true).toEqual(true);
    }));
});

Angular2 RC5

Upvotes: 5

Related Questions