组件fais的单元测试有错误,"在注入Router"之前引导至少一个组件。

时间:2016-10-07 16:32:39

标签: angular

我正在尝试使用Jasmine和Karma测试我的一个组件,但它失败并出现以下错误=" app / components / login.js中的错误类LoginComponent_Host - 内联模板:0:0引起:Bootstrap注入Router"之前至少有一个组件。

同样的测试对我们的根组件没有任何问题。这是测试代码 -

import { LoginComponent } from './login';
import { TestBed, async } from '@angular/core/testing';
import { AppModule } from "../app.module";
import { APP_BASE_HREF } from "@angular/common"

describe('LoginComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [ AppModule ],
      providers: [ { provide: APP_BASE_HREF, useValue : '/' } ]
    });
  });

  it('should instantiate component', async(() => {
    TestBed.compileComponents().then(() => {
      let fixture = TestBed.createComponent(LoginComponent);
      fixture.detectChanges();
      expect(fixture.componentInstance instanceof LoginComponent).toBe(true, 'should create LoginComponent');
    });
  }));
});

LoginComponent是AppModule的一部分,以下是AppModule的设置方式:

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    routing
  ],
  declarations: [
    AppComponent,
    LoginComponent,
    SponsorsComponent
  ],
  providers: [
    AuthenticationService,
    UserService
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

相同的测试对AppComponent没有任何问题,AppComponent是AppModule的根组件。想知道是否需要对引导AppComponent进行任何测试平台设置?如果有任何我可以尝试的建议,请告诉我。提前谢谢。

0 个答案:

没有答案