如何使用jasmine测试日期(无效日期)

时间:2017-02-17 17:21:54

标签: javascript date testing jasmine

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

const getStartOfDay = date => {
    const newDate = new Date(date);
  newDate.setHours(0, 0, 0, 0);
  return newDate;
}

现在我想用无效值实现一些测试,例如:getStartOfDay(new Date("HELLO"));函数返回Date(Invalid Date)

我试着测试:

expect(util.getStartOfDay("hello")).toBe(new Date("hello"));

但我明白了:

  

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

toEquals() ...

相同的错误

我与getTime()比较的其他日期但在这里我不能......所以我被卡住了......

我对如何测试有任何想法?

2 个答案:

答案 0 :(得分:1)

这是因为在JS <rect class="bar" x="1" transform="translate(0,24.06417112299465)" width="101" height="275.93582887700535"></rect>中,无效日期有NaN != NaN时间。因此,您可以检查NaNutil.getStartOfDay("hello").getTime()

NaN

答案 1 :(得分:1)

来自Detecting an "invalid date" Date instance in JavaScript的一些见解。

 [TestMethod()]
        public void ParseParameterTest()
        {
            Algo.Alpha.AlphaCalculator calc = new Alpha.AlphaCalculator();

            string test_input = File.ReadAllText(@"..\..\..\case\Alpha Example Input.json");
            string expected = File.ReadAllText(@"..\..\..\case\Alpha Example DOutput.json");
            string res = calc.AlphaCalcParam(test_input);

            Assert.AreEqual(expected, res);
        }

这是JSFiddle https://jsfiddle.net/backpackcoder/jj3061fk/1/