Angular тестирование с помощью Jest & Spectator

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

КОМПОНЕНТ: компонент имеет 2 группы форм и родительскую группу форм.

export class ShopComponent implements OnInit {

  booksForm: FormGroup;
  title = new FormControl('', Validators.required);
  author = new FormControl('', Validators.required);

  clothingForm: FormGroup;
  size = new FormControl('', Validators.required);
  price = new FormControl('', Validators.required);

  // parent form group
  parentForm: FormGroup;

   constructor(private fb: FormBuilder, private location: Location) {}

   ngOnInit(): void {
    this.initializeControls();
  }

  private initializeControls() {

    this.booksForm = this.fb.group({
       title: this.title,
       author: this.author
    });

    this.clothingForm = new FormGroup({
        size: this.size,
        price: this.price
    });


   // parent form
    this.parentForm = new FormGroup({
      booksForm: this.booksForm,
      clothingForm: this.clothingForm
    });

  }

}

ПРЕЦЕДЕНТ

describe('AanvraagGroeneZorginitiatiefComponent', () => {
  let spectator: Spectator<ShopComponent>;
  let component: ShopComponent;

  const formBuilderStub = { group: object1 => ({}) };

  const createComponent = createComponentFactory({
       component: ShopComponent,
       componentProviders: [
          {provide: FormBuilder, useValue: formBuilderStub},
          {provide: Location, useValue: {}},
          {provide: FormGroup, useValue: {}},
       ],
    imports: [IMPORTS ARE OMITTED FOR CLARITY]

  });

  beforeEach(inject([FormBuilder], (fb: FormBuilder) => {
    const formStub = {group: object1 => ({})  };

    spectator = createComponent();

    component = spectator.component;
    component.parentForm = fb.group({booksForm: formStub,
                                     clothingForm: formStub});
    spectator.detectChanges();
  }));

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

});

ЭТО ОШИБКА, КОТОРАЯ ПОЛУЧИЛА

● ShopComponent › should create

    TypeError: control.setParent is not a function

     ● ShopComponent › should create

    expect(received).toBeTruthy()

    Received: undefined

      93 | 
      94 |   it('should create', () => {
    > 95 |     expect(component).toBeTruthy();
         |                       ^
      96 |   });
      97 | 

Как я могу это исправить?

0 ответов

Другие вопросы по тегам