我想验证登录表单。首先,我有一个角登录组件,它有一个子组件,一个使用 stenciljs 创建的表单。此表单有自己的方法,称为 isValid()。
我已经为表单分配了一个模板,并且我使用了 @ViewChild 装饰器来引用它:
login.component.html:
<gdk-form #form>
...
</gdk-form>
login.component.ts:
@ViewChild('form') form: ElementRef;
所以在我的登录组件 login.component.ts我可以毫无问题地使用:
this.form.nativeElement.isValid()
当我尝试测试此登录组件并尝试使用夹具login.component.spec.ts调用 isValid 函数时出现问题
fixture.componentInstance.form.nativeElement.isValid();
我得到了错误:
fixture.componentInstance.form.nativeElement.isValid 不是 UserContext 中的函数。
这就是我在登录测试组件login.component.spec.ts中启动测试的方式:
let fixture: ComponentFixture<LoginComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [SharedModule],
declarations: [LoginComponent],
providers: []
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(LoginComponent);
fixture.detectChanges();
});
我可能做错了什么?提前致谢。