0

我想验证登录表单。首先,我有一个角登录组件,它有一个子组件,一个使用 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();
  });

我可能做错了什么?提前致谢。

4

0 回答 0