Не может соответствовать ни одному маршруту.Ошибка в угловых? - PullRequest
0 голосов
/ 05 июня 2018

Я сделал простой app, который работает правильно.

Теперь я пытаюсь написать тестовые случаи для этого приложения, поэтому я попытался с помощью routing.

stackblitz

Мой код маршрутизации такой:

Основной модуль:

export const routes: Routes = [
  { path: '',   redirectTo: '/users', pathMatch: 'full' },

];
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    UserModule,
    HttpClientModule,
    RouterModule.forRoot(routes)

  ],

Функциональный модуль:

const routes: Routes = [
  {path: 'users', component: ListingComponent}

];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forChild(routes)
  ],
  declarations: [ListingComponent]
})

Код

Я пытаюсь запустить мой spec, но я получаю ошибку выше

describe('Initial navigation', () => {
    it('default route redirects to home (async)', fakeAsync(() => {
      router.initialNavigation(); // triggers default
      fixture.detectChanges();
      tick();
      console.log('==================');
      console.log(location.path());
      // fixture.whenStable().then(() => {
      expect(location.path()).toBe('/users');
      // })
    }));
  });

1 Ответ

0 голосов
/ 05 июня 2018

Если вы импортируете UserModule в спецификацию, это устраняет ошибку.Поскольку AppModule module импортирует UserModule для регистрации пользовательских функций / модулей, он также должен быть импортирован в спецификации, чтобы гарантировать, что его регистрации маршрутов также доступны в спецификации.

Необходимость этого подразумеваетсяна базовом уровне в документации Тестирование: импорт функционального модуля .

//setup
beforeEach(() => {
  TestBed.configureTestingModule({
    imports: [
      UserModule, // import module
      RouterTestingModule.withRoutes(routes)],
    declarations: [
      TestComponent,
    ]
  });
  fixture = TestBed.createComponent(TestComponent);
  router = TestBed.get(Router);
  location = TestBed.get(Location);
});

Вот обновленный StackBlitz , демонстрирующий функциональность (тестирование проходит без ошибок).

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