角果茉莉花日期比较

问题描述 投票:0回答:1

这里是SelectEndDate函数,我在这里比较日期。


selectEndDate = () => {
    const currentDate = this.createDate();
    const endDate = this.addSurveyForm.value.endDate;
    const startDate = this.addSurveyForm.value.startDate;
    Eif (startDate === undefined || startDate === null || startDate === '') {
      this.addSurveyForm.patchValue({
        endDate: new FormControl({ value: ' ', disabled: true }, Validators.required)
      });
    } else {
      if (new Date(endDate) < new Date(currentDate)) {
        this.addSurveyForm.patchValue({
          endDate: ''
        });
      }
      if (new Date(endDate) < new Date(startDate)) {
        this.addSurveyForm.patchValue({
          endDate: ''
        });
      }
    }
  }

我想为此功能编写测试用例。要检查开始日期是否为空(如果是),那么我写了这种情况

it('should call selectEndDate if startDate is null ', () => {
    const startDate = '';
    component.selectEndDate();
    fixture.detectChanges();
    expect(startDate).toBe('');
  });

现在我不知道如何覆盖其他部分,我不能使用少于运算符的日期。所以请帮帮我。

angular karma-jasmine date-comparison
1个回答
0
投票

在此测试中

it('should call selectEndDate if startDate is null ', () => {
    const startDate = '';
    component.selectEndDate();
    fixture.detectChanges();
    expect(startDate).toBe('');
  });

两行

    component.selectEndDate();
    fixture.detectChanges();

不影响测试结果。const startDate = '';startDate内部的selectEndDate无关。您需要改为更改表单的值,并还要测试表单的值。

it('should call selectEndDate if startDate is null ', () => {
    const component = fixture.componentInstance;
    component.addSurveyForm.patchValue({
      startDate: ''
    });

    fixture.detectChanges();

    component.selectEndDate();
    expect(component.addSurveyForm.value.endDate).toBe('');
  });

此外,订阅component.addSurveyForm.controls.startDate.valueChanged并在该订阅中更新endDate会更可靠。这样,无论何时endDatestartDate都会被更新。即使发生在selectEndDate功能之外

© www.soinside.com 2019 - 2024. All rights reserved.