Angular 角笑话测试材料形式进入无限循环

Angular 角笑话测试材料形式进入无限循环,angular,angular-material,jestjs,Angular,Angular Material,Jestjs,我正在尝试使用jest为使用材质创建形状的角度组件编写一个测试。组件使用mat表单字段,其中包含输入和mat错误 我将MatFormFieldModule导入到测试中,以便所有必要的组件都可用,但测试进入无限循环 网上的一些建议是需要包括动画模块,但我已经尝试过了,并得到了相同的结果。有相当多的结果具有相同的错误,但使用材质库的结果并不多 引发的错误是: 组件代码: import { Component, OnInit } from '@angular/core'; import { Form

我正在尝试使用jest为使用材质创建形状的角度组件编写一个测试。组件使用mat表单字段,其中包含输入和mat错误

我将MatFormFieldModule导入到测试中,以便所有必要的组件都可用,但测试进入无限循环

网上的一些建议是需要包括动画模块,但我已经尝试过了,并得到了相同的结果。有相当多的结果具有相同的错误,但使用材质库的结果并不多

引发的错误是:

组件代码:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';

@Component({
selector: 'jest-play-first-component',
templateUrl: './first-component.component.html',
styleUrls: ['./first-component.component.scss']
})

export class FirstComponentComponent implements OnInit {
  formGroup: FormGroup;
  searchTitle: string = "";
  formSubmitted: boolean;
  result: any;

  constructor(private fb: FormBuilder) { 
    this.formGroup = this.createFormGroup();
  }

  createFormGroup(): FormGroup {
    return this.fb.group({
      title : [null, Validators.required]
    });
  }

  ngOnInit(): void {
  }

  onSubmit() {
  }
 }
 
}
组件模板:

<p>first-component works!</p>

<form [formGroup]="formGroup" novalidate (ngSubmit)="onSubmit()">
    <mat-form-field class="full-width">
        <input matInput [(ngModel)]="searchTitle" formControlName="title">
        <mat-error *ngIf="formGroup.controls['title'].hasError('required')">
            First name is <strong>required</strong>
        </mat-error>
    </mat-form-field>
    <div>
        <button mat-raised-button color="primary" type="submit">Submit</button>
    </div>
    <div>{{ this.result }}</div>
</form> 
第一个组件工作

名字是必填项 提交 {{this.result}}
进入无限循环的测试:

    import { CommonModule } from '@angular/common';
    import { ComponentFixture, TestBed } from '@angular/core/testing';
    import { FormsModule, ReactiveFormsModule } from '@angular/forms';
    import { MatFormFieldModule } from '@angular/material/form-field';

    import { FirstComponentComponent } from './first-component.component';

    describe('FirstComponentComponent', () => {
      let component: FirstComponentComponent;
      let fixture: ComponentFixture<FirstComponentComponent>;

      beforeEach(async () => {
        await TestBed.configureTestingModule({
          declarations: [ FirstComponentComponent ],
          imports: [ CommonModule, FormsModule, ReactiveFormsModule, MatFormFieldModule ]
        })
        .compileComponents();
      });

      beforeEach(async () => {
        fixture = await TestBed.createComponent(FirstComponentComponent);
        component = fixture.componentInstance;
        component.ngOnInit();
        fixture.detectChanges();
      });

      it('should never create', () => {
        expect(component).toBeTruthy();
      });
    });
从'@angular/common'导入{CommonModule};
从“@angular/core/testing”导入{ComponentFixture,TestBed};
从'@angular/forms'导入{FormsModule,ReactiveFormsModule};
从“@angular/material/form field”导入{MatFormFieldModule};
从“./first component.component”导入{FirstComponentComponent};
描述('FirstComponentComponent',()=>{
let组件:第一个组件组件;
let夹具:组件夹具;
beforeach(异步()=>{
等待TestBed.configureTestingModule({
声明:[FirstComponentComponent],
导入:[CommonModule、FormsModule、ReactiveFormsModule、MatFormFieldModule]
})
.compileComponents();
});
beforeach(异步()=>{
fixture=await TestBed.createComponent(FirstComponentComponent);
组件=fixture.componentInstance;
组件。ngOnInit();
fixture.detectChanges();
});
它('不应该创建',()=>{
expect(component.toBeTruthy();
});
});
我在这里把它推到了公共回购协议上:

测试组件如下所示:
JestPlay/jest play/libs/ui-components/src/lib/components/first-component/

不知道发生未处理拒绝的时间点。考虑添加<代码>进程。(“unHealDebug”,控制台。错误)< /代码>。