Проверка углового блока Проверка текущего маршрута ленивого загруженного модуля - PullRequest
0 голосов
/ 27 февраля 2019

Позвольте мне быстро описать мою проблему.Я пытаюсь протестировать простой метод, который проверяет 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?Любые советы будут полезны, особенно если речь идет о конфигурации, поддельных маршрутах и ​​т. Д. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...