angular -Тестовая библиотека "Нет доступа к значению для элемента управления формой с именем: 'asmtPeriod'" - PullRequest
0 голосов
/ 12 июля 2020

Я использую Angular -testing-library для тестирования моего angular компонента. все работает нормально. Теперь я тестирую один из компонентов, который создает форму на ngOninit и выдает ошибку как No value accessor for form control with name: 'asmtPeriod', которую я не могу исправить.

моя версия angular - 8.x моя версия библиотеки тестирования также 8.2.0

вот мой код компонента:

constructor(private formbuilder: FormBuilder) { }

ngOnInit() {
    this.createForm();
    this.initializeTableInfo();
    if (this.tableConfig) {
        this.setTableConfig();
    }
}

createForm() {
    this.linkedAuthorisedFrm = this.formbuilder.group({
        asmtPeriod: [null, [ValidationService.asmtNameRequired]],
        programme: [null, [ValidationService.prgNameRequired]],
        subjectGroup: [null, []],
        subject: [null, []],
        subjectSubGroup: [null, []],
        version: [null, []],
        level: [null, []],
        option: [null, []]
    });
}

и вот мой тестовый spe c:

import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ValidationService } from '@ibo/ibo-shared-lib';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { render } from '@testing-library/angular';
import { ViewCandidateRegistrationComponent } from './view-candidate-registration.component';


describe('view candidate registration component', () => {

    let sendValue = jest.fn();
    const formBuilder: FormBuilder = new FormBuilder();
    let instant:any;
let form = formBuilder.group({
        asmtPeriod: ['', []],
        programme: [null, []],
        subjectGroup: [null, []],
        subject: [null, []],
        subjectSubGroup: [null, []],
        version: [null, []],
        level: [null, []],
        option: [null, []]
    });
       


    beforeEach(async () => {
        instant = await render(ViewCandidateRegistrationComponent, {
            componentProperties:{
                sourceDataCount:0,
                linkedAuthorisedFrm: form
            },
            providers:[
                {
                    provide: TranslateService
                },
                {
                    provide: FormBuilder, useValue: formBuilder
                }
            ],
            imports: [TranslateModule, ReactiveFormsModule, FormsModule],
            schemas: [CUSTOM_ELEMENTS_SCHEMA]
        });

    });

Не удалось исправить ошибку. также у меня нет образца или учебника для библиотеки тестирования, которая обрабатывает такой сценарий. кто-нибудь, пожалуйста, помогите мне?

Заранее спасибо.

...