Сбой теста в угловом 6 из-за того, что APP_BASE_HREF не установлен - PullRequest
0 голосов
/ 28 января 2019

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

Как вы можете видеть ниже, мой тест жалуется, что базовый href не установлен, но в моем index.html у меня действительно есть <base href="/">

Error: No base href set. Please provide a value for the APP_BASE_HREF token or
       add a base element to the document.
at new PathLocationStrategy (./node_modules/@angular/common/fesm5/common.js?:498:19)
at provideLocationStrategy (./node_modules/@angular/router/fesm5/router.js?:5302:9)
at _callFactory (./node_modules/@angular/core/fesm5/core.js?:8735:20)
at _createProviderInstance (./node_modules/@angular/core/fesm5/core.js?:8687:26)
at initNgModule (./node_modules/@angular/core/fesm5/core.js?:8617:32)
at new NgModuleRef_ (./node_modules/@angular/core/fesm5/core.js?:9343:9)
at createNgModuleRef (./node_modules/@angular/core/fesm5/core.js?:9332:12)
at Object.debugCreateNgModuleRef [as createNgModuleRef]
       (./node_modules/@angular/core/fesm5/core.js?:11157:12)
at NgModuleFactory_.create (./node_modules/@angular/core/fesm5/core.js?:11874:25)
at TestBed._initIfNeeded (./node_modules/@angular/core/fesm5/testing.js?:1015:47)

Это мой item-component.spec.ts тест

import {async, ComponentFixture, TestBed} from '@angular/core/testing';

import {ItemComponent} from './item.component';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {AppRoutingModule} from '../../app-routing.module';
import {HomeComponent} from '../home/home.component';
import {ContactComponent} from '../contact/contact.component';
import {InventoryComponent} from '../inventory/inventory.component';
import {SearchComponent} from '../search/search.component';
import {ApplicationFormComponent} from '../application/application-form.component';
import {SiteShellComponent} from '../site-shell/site-shell.component';
import {MainNavigationComponent} from '../partials/main-navigation/main-navigation.component';
import {FooterComponent} from '../partials/footer/footer.component';
import {ReactiveFormsModule} from '@angular/forms';

import {DebugComponent} from '../debug/debug.component';
import {NewformComponent} from '../debug/under-test/newform.component';
import {MultiSelectComponent} from '../debug/under-test/multi-select.component';

describe('ItemComponent', () => {
  let component: ItemComponent;
  let fixture: ComponentFixture<ItemComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        ItemComponent,
        HomeComponent,
        ContactComponent,
        InventoryComponent,
        SearchComponent,
        FinanceApplicationComponent,
        SiteShellComponent,
        MainNavigationComponent,
        FooterComponent,

        DebugComponent,
        NewformComponent,
        MultiSelectComponent,
      ],
      imports: [
        HttpClientTestingModule,
        AppRoutingModule,
        ReactiveFormsModule
      ],
    })
      .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(ItemComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

Почему мой тест не может увидеть базовую ссылку или что я делаю не так?Я действительно не уверен, что смотреть здесь, чтобы исправить.Я попытался импортировать AppComponent, но это не помогло.

Редактировать: даже если кто-то не мог ответить, но, по крайней мере, указал мне правильное направление, я застрял в этом.Спасибо.

1 Ответ

0 голосов
/ 27 июня 2019

Импортируйте RouterTestingModule из @ angular / router / testing в испытательный стенд.Это должно решить проблему.

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