Angular 单元测试错误 - 无法绑定到 'formGroup',因为它不是 'form' 的已知 属性

Angular unit test error - Can't bind to 'formGroup' since it isn't a known property of 'form'

我收到“无法绑定到 'formGroup',因为它不是 'form' 的已知 属性”错误(它('should create',() => {} ) 在我的应用程序中使用 formGroup 测试每个组件。该应用程序工作正常。

我在每个模块中都导入了 FormsModule 和 ReactiveFormsModule。

<form [formGroup]="uploadDocumentFormGroup">

export class UploadFormComponent implements OnInit {
  public uploadDocumentFormGroup: FormGroup;

  constructor(
    private formBuilder: FormBuilder,
    private modalMessageService: ModalMessageService,
  ) {
    this.createForm();
  }

  private createForm(): void {
     this.uploadDocumentFormGroup = this.formBuilder.group({
        uploadDescription: FormFields.default()
      });
  }

上传-form.component.spec.ts

describe('UploadFormComponent', () => {
  let component: UploadFormComponent;
  let fixture: ComponentFixture<UploadFormComponent>;
  // let formBuilder: FormBuilder
  // let modalMessageService: ModalMessageService;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ UploadFormComponent ],
      providers: [ ModalMessageService, FormBuilder ]
    })
    .compileComponents();
  }));

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

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

});

请帮忙。谢谢。

您似乎正在使用 ReactiveForms,因此您必须将此模块添加到导入中。

  import { ReactiveFormsModule } from '@angular/forms';
  ...
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ UploadFormComponent ],
      providers: [ ModalMessageService, FormBuilder ],
      // add this line
      imports: [ ReactiveFormsModule ]
    })
    .compileComponents();
  }));