我正在将我的Angular 2项目从RC5升级到2.0.0.我收到此错误
未处理的Promise拒绝:组件LoginComponent不是任何NgModule的一部分,或者模块尚未导入到您的模块中.; 区域:; 任务:Promise.then; 值:错误:组件
Main.ts:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)
的AppModule:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import {RouterModule} from "@angular/router";
import {AppsAdminComponent} from './AppsAdmin/AppsAdmin.component';
import {AppsManagerComponent} from './AppsManager/AppsManager.component';
import {LoginComponent} from './Login/Login.component';
import {LogoutComponent} from './Logout/logout.component';
import { Routing } from './App.routing';
import {HttpModule} from '@angular/http';
//import {AppsManagerService} from './Service/AppsManager.service';
import …Run Code Online (Sandbox Code Playgroud) 这是我在单元测试的每个块之前。它工作得很好,为每个测试提供了一个新的组件实例。然而,执行 beforeEach 块大约需要 4 秒。当你进行 200 次测试时,速度就很慢了!
我想将大部分代码移至 beforeAll 块(如果您使用 Jasminedone()回调而不是使用异步,则该块有效),但我仍然无法为每个测试创建一个新实例。某些测试失败是因为唯一实例已被先前的测试篡改。
我如何 ...
或者
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [AppModule],
providers: [{provide: APP_BASE_HREF, useValue: '/'},
MockBackend,
BaseRequestOptions,
{
provide: Http,
useFactory: (pBackend: MockBackend, pOptions: BaseRequestOptions) => {
return new Http(pBackend, pOptions);
},
deps: [MockBackend, BaseRequestOptions]
}]
}).compileComponents()
.then(() => {
fix = TestBed.createComponent(Route1DetailComponent);
instance = fix.componentInstance;
injector = fix.debugElement.injector;
});
}));
Run Code Online (Sandbox Code Playgroud)