Позвольте мне быстро описать мою проблему.Я пытаюсь протестировать простой метод, который проверяет URL текущего маршрута.Этот метод возвращает только логическое значение, которое используется в ngIf в компоненте html.Файл машинописи компонента выглядит следующим образом:
export class StudentComponent {
constructor(private router: Router) { }
routesAreNotUsed() {
return this.router.url === '/student' ? true : false;
}
}
Проблема в том, что это компонент из лениво загруженного модуля.Вот маршруты компонента приложения и маршруты компонента StudentModule:
AppRoutingModule:
export const routes: Routes = [
{path: '', pathMatch: 'full', redirectTo: 'welcome'},
{path: 'welcome', component: WelcomeComponent},
{path: 'about', component: ProjectInfoComponent},
{path: 'student', loadChildren: './student/student.module#StudentModule', canLoad: [AuthGuard]},
{path: '**', redirectTo: '404'},
{path: '404', component: PageNotFoundComponent}
];
StudentRoutingModule:
export const routes: Routes = [
{
path: '', component: StudentComponent,
children: [
{
path: 'info', component: UserComponent
},
{
path: 'grades', component: GradesComponent
},
{
path: 'grades/:id/grade', component: GradeComponent
},
{
path: 'teachers', component: TeachersComponent,
},
{
path: 'teachers/:id/info', component: UserComponent,
},
{
path: 'messages', component: MessagesComponent,
children: [
{
path: 'message/:messageType/:id', component: MessageComponent
}
]
}
]
}
]
Когда пользователь нажимает кнопку входа, загруженный модульуволен.Как видите, компонентом по умолчанию для этого модуля является StudentComponent.Если запущены маршруты, текущим URL является '/ student' (из AppRoutingModule), но на самом деле, если речь идет о StudentRoutingModule, это просто '' .Как я могу написать модульный тест для этого простого routAreNotUsed () метода в StudentComponent?
Я не могу использовать RouterTestingModule.withRoutes (routOfStudentModule), поскольку отсутствует URL-адрес «/ student».То же самое касается RouterTestingModule.withRoutes (routOfAppModule)
Может кто-нибудь предоставить решение mi или просто псевдокод модульного теста и файл конфигурации spec?Любые советы будут полезны, особенно если речь идет о конфигурации, поддельных маршрутах и т. Д. Заранее спасибо.