如何修复Angular 2中的"无法读取null的注入器属性"错误?

A. *_*uff 3 unit-testing angular

此问题描述了beforeEachProviders在不推荐使用该函数后如何更新Angular 2 .

但是这样做了,我得到了错误 Cannot read property 'injector' of null

我的测试相对基础:

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);
    }));
});
Run Code Online (Sandbox Code Playgroud)

Dav*_*ave 5

addProviders也被弃用,有利于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);
    }));
});
Run Code Online (Sandbox Code Playgroud)

Angular2 RC5