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