Тестирование с помощью matHorizontStepper. Angular Материал - PullRequest
0 голосов
/ 24 апреля 2020

Пишу тест на коврик-степпер. Я сталкиваюсь с ошибкой: Ошибка: Экспорт имени 'matHorizontStepper' не найден!

Благодаря комментариям ниже я понял это.

При тестировании с Angular Материальными компонентами вы должны импортировать их в свой тестовый файл вместе с BrowserAnimationsModule и иногда ReactiveFormsModule.

  describe('EditFulfillmentWorkflowComponent', () => {
let component: EditFulfillmentWorkflowComponent;
let fixture: ComponentFixture<EditFulfillmentWorkflowComponent>;
beforeEach(() => {
const activatedRouteStub = () => ({
  snapshot: { paramMap: { get: () => ({}) } }
});



const routerStub = () => ({ navigateByUrl: string => ({}) });
const notificationsServiceStub = () => ({});
const fulfillmentServiceStub = () => ({
  getFulfillmentWorkflows: any => ({ subscribe: f => f }),
  getOrchestratorActionInfo: any => ({ subscribe: f => f }),
  checkIfWorkflowNameExists: any => ({ subscribe: f => f(Boolean) }),
  updateFulfillmentWorkflow: submitFulfillmentWorkflow => ({
    subscribe: f => f({})
  })
});
TestBed.configureTestingModule({
  schemas: [NO_ERRORS_SCHEMA],
  declarations: [EditFulfillmentWorkflowComponent],
  imports: [MatStepperModule, BrowserAnimationsModule, ReactiveFormsModule],
  providers: [
    { provide: ActivatedRoute, useFactory: activatedRouteStub },
    { provide: Router, useFactory: routerStub },
    { provide: NotificationsService, useFactory: notificationsServiceStub },
    { provide: FulfillmentService, useFactory: fulfillmentServiceStub }
  ]
});
fixture = TestBed.createComponent(EditFulfillmentWorkflowComponent);
component = fixture.componentInstance;
});


beforeEach(() => {
fixture = TestBed.createComponent(EditFulfillmentWorkflowComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();

}); [Редактировать] первый комментарий решил мой проблема.

1 Ответ

1 голос
/ 29 апреля 2020

Сначала вам нужно импортировать все модули, которые использует ваш компонент.

Из-за этого вам необходимо импортировать:

import {MatStepperModule} from '@angular/material/stepper';

и добавить его в imports в TestBed.configureTestingModule({...})

Кроме того, если вы используете компонент в своем компоненте, вам необходимо добавить в declarations: [EditFulfillmentWorkflowComponent], из TestBed.configureTestingModule({...})

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