所以我尝试用Jasmine进行单元测试,这是第一次做到这一点。我读过你必须创建模拟。不过我已经这样做了 - 只要我为RouterStub提供模拟,我就会收到错误"无法读取未定义的根"
class RouterStub {
navigate(params){
}
}
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ FpUserIdComponent ],
imports: [ FormsModule, ReactiveFormsModule, RouterTestingModule, HttpModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [ Http ]
}
})
],
providers: [
ForgotPasswordService, CorrelateID, ErrorToggleService, ApiService,
{ provide: XHRBackend, useClass: MockBackend },
{ provide: ActivatedRouteStub, useClass: ActivatedRouteStub },
{ provide: "api.config", useFactory: getData },
{ provide: Router, useValue: RouterStub }
]
})
.compileComponents();
}));
我的组件:
export class FPUserIdComponent implements OnInit, ComponentCanDeactive {
constructor(
private route: ActivatedRoute,
private router: Router,
private forgotpasswordservice: ForgotPasswordService,
private errorToggleService: ErrorToggleService,
private apiService: ApiService ) { }
}