測試中如果不關(guān)心真實的路由跳轉(zhuǎn)惋耙,可以使用mock
let mockRouter = {
navigate: jasmine.createSpy('navigate')
}
TestBed.configureTestingModule({
providers: [
{ provide: Router, useValue: mockRouter }
]
})
在測試中可能只是想要確認(rèn)navigate
被調(diào)用,可以這樣:
expect(mockRouter.navigate).toHaveBeenCalledWith(['/router']);
如果想要測試真實導(dǎo)航蝠咆,可以使用RouterTestingModule
,添加所有的路由providers
和directives
import { RouterTestingModule } from '@angular/router/testing';
TestBed.configureTestingModule({
imports: [
RouterTestingModule.withRoutes([{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}])
]
})
參考:# Angular 2 Unit testing: Can't resolve all parameters for Router