首页 > 解决方案 > 角形单元测试

问题描述

    public isValidStartDate() {
      return this.form.controls.dueDate.touched && this.form.controls.dueDate.errors &&
          !this.form.controls.dueDate.hasError('required')
    }
    public invalidDueDate() {
      return this.form.controls.dueDate.touched && this.form.controls.dueDate.hasError('required');
    }


  it('should check a valid data', () => {
    const dueDate = component.form.controls['dueDate'];
    expect(component.isValidStartDate()).toBeFalsy();
    expect(component.invalidDueDate()).toBeFalsy();

// Not working toBeTruthy
expect(component.isValidStartDate()).toBeTruthy();
    expect(component.invalidDueDate()).toBeTruthy();

  });

我需要帮助为 toBeTruthy 编写单元测试,任何人都可以帮助,谢谢

我不知道如何为 toBeTruthy 编写测试用例

标签: angularunit-testingjasmineangular-forms

解决方案


isValidStartDate说的第一个条件this.form.controls.dueDate.touched,所以要模仿touched你可以调用的状态dueDate.markAsTouched()https://angular.io/api/forms/AbstractControl#markAsTouched


推荐阅读