Unit-Tests FormGroup / FormArray

stimmen
0

Ich habe eine Funktion, die eine AbstractControl Variable und führt die folgende Aktion übernimmt:

new(item: AbstractControl) {
  item['controls'].myArray.push(
    this.formBuilder.group({
      // my attributes here
    )}
  )
}

Die Objektstruktur , wenn ich auftrete console.log(item)ist die folgende ( Ich habe nur wichtige Informationen angezeigt ):

FormGroup {
  controls: {
    …,
    items: FormArray { 
      …,
      controls: Array(5) [FormGroup, FormGroup, …] 
  }
}

Allerdings kann ich nicht scheinen, richtig zu testen ...

it('Should add', () => {
    const fb = new FormBuilder();
    const myObject = fb.group([example]);

    component.new(myObject);

    const packagesLength = component.myFormGroup.get('data')['controls'][0]['controls']['items']['controls'].length;

    expect(packagesLength).toEqual(2);
  });

Alles, was ich bekommen von der Konsole

Kann nicht Eigentum ‚Push‘ undefinierten lesen

Wenn ich die Array - Klammern aus für meine FormBuilder.group (dh entfernen fb.group(example);, erhalte ich die Meldung:

customer.controls.packages.push ist keine Funktion

Veröffentlicht am 19/12/2018 um 14:15
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Would't Sie benötigen einen formArray mit dem Namen ‚myArray‘ hinzuzufügen in Sie testen, anstatt eines Arrays in einem formGroup ohne Steuer Name? So etwas wie:

it('Should add', () => {
    const fb = new FormBuilder();
    const myObject = fb.group('myArray': fb.array());

    component.new(myObject);

    const packagesLength = component.myFormGroup.get('data')['controls'][0] ['controls']['items']['controls'].length;

    expect(packagesLength).toEqual(2);
});
Beantwortet am 19/12/2018 um 14:25
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more