Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用茉莉花测试日期(无效日期)_Javascript_Date_Testing_Jasmine - Fatal编程技术网

Javascript 如何用茉莉花测试日期(无效日期)

Javascript 如何用茉莉花测试日期(无效日期),javascript,date,testing,jasmine,Javascript,Date,Testing,Jasmine,为了简化,让我们看看这个函数获取日期并返回修改的日期(开始日期): 现在我想用无效值实现一些测试,例如:getStartOfDay(newdate(“HELLO”)函数返回日期(无效日期) 我试着做如下测试: expect(util.getStartOfDay("hello")).toBe(new Date("hello")); 但我得到: 预期日期(无效日期)等于日期(无效日期) 与toEquals()相同的错误 其他日期我与getTime()比较,但在这里我不能。。。所以我被绊倒了 知道如

为了简化,让我们看看这个函数获取日期并返回修改的日期(开始日期):

现在我想用无效值实现一些测试,例如:
getStartOfDay(newdate(“HELLO”)函数返回日期(无效日期)

我试着做如下测试:

expect(util.getStartOfDay("hello")).toBe(new Date("hello"));
但我得到:

预期日期(无效日期)等于日期(无效日期)

toEquals()相同的错误

其他日期我与
getTime()
比较,但在这里我不能。。。所以我被绊倒了


知道如何测试它吗?

这是因为在JS
NaN!=NaN
和无效日期具有NaN
时间。因此,您可以检查
util.getStartOfDay(“hello”).getTime()
是否为
NaN

expect(isNaN(util.getStartOfDay("hello").getTime())).toBe(true);
从中获得一些见解

这是JSFIDLE

expect(isNaN(util.getStartOfDay("hello").getTime())).toBe(true);
const isValidDate = date => {
  if ( Object.prototype.toString.call(date) === "[object Date]" ) {
    // it is a date
    if ( isNaN( date.getTime() ) ) {  // date.valueOf() could also work
      return false;
    }
    else {
      return true;
    }
  }
  else {
    return false;
  }
}

describe("Suite", function() {
  it("handles invalid Dates", function() {
    expect(isValidDate(getStartOfDay("hello")) ).toBeFalsy();
  });
});