我正在尝试使用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进行任何测试平台设置?如果有任何我可以尝试的建议,请告诉我。提前谢谢。