我在路由单元测试方面遇到一些问题。我试过了this https://stackoverflow.com/questions/51635273/angular-unit-testing-lazy-loaded-modules-with-routing解决方案,但是现在这个延迟加载符号已弃用 https://stackoverflow.com/questions/59943328/what-is-difference-between-loadchildren-import-hoge-module-ts-thenm,所以我的测试由于某种原因失败了。
有人可以给我建议我的代码可能有什么问题吗?
应用程序路由.module.ts:
export const routes: Routes = [
{path: 'about', component: AboutComponent},
{path: 'files', loadChildren: () => import('./files/files.module').then(m => m.FilesModule)},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
应用程序路由.module.spec.ts:
describe('AppRoutingModule', () => {
let location: Location;
let router: Router;
let fixture;
beforeEach(() => {
TestBed.configureTestingModule({
imports:[
RouterTestingModule.withRoutes(routes),
HttpClientModule,
AboutComponent,
],
declarations: [
AppComponent,
FilesComponent,
],
providers: [{provide: APP_BASE_HREF, useValue: '/'}]
})
router = TestBed.get(Router);
location = TestBed.get(Location);
fixture = TestBed.createComponent(AppComponent);
router.initialNavigation();
});
it('should navigate to files', fakeAsync(() => {
const loader = TestBed.get(NgModuleFactoryLoader);
loader.stubbedModules = {lazyModule : FilesModule }
router.resetConfig([
{path: 'files', loadChildren: 'lazyModule'},
]);
router.navigate(['files']);
tick(50);
fixture.detectChanges();
expect(location.path()).toBe('/files');
}));
});
谢谢你!