使用角度单位测试检查日期对象

时间:2015-08-11 15:41:12

标签: angularjs unit-testing

如果我的预期结果是以下格式的日期对象,我该如何测试呢?

  

2015年1月22日星期四00:00:00 GMT + 0000(GMT日光时间)

我试过

    expect(theDate).toEqual( Date(Thu Jan 22 2015 00:00:00 GMT+0000 (GMT Daylight Time) ) );

但是我在运行测试时遇到以下错误:

  参数列表

之后的

Uncaught SyntaxError:missing)

没有其他未公开的括号可以解决问题。例如,如果我将测试更改为:

    expect(theDate).toEqual( 'Thu Jan 22 2015 00:00:00 GMT+0000 (GMT Daylight Time)' );

它正确地失败了:

  

预计日期(2015年1月22日00:00:00 GMT + 0000(格林威治标准时间))等于'2015年1月22日00:00:00 GMT + 0000(GMT日光时间)'。

1 个答案:

答案 0 :(得分:1)

JavaScript Date Object需要在构造函数中接收一个字符串,并且在Date之前需要new

expect(theDate).toEqual( new Date("Thu Jan 22 2015 00:00:00 GMT+0000 (GMT Daylight Time)") );

如果您不确定,可以随时提取比较值​​并输出以进行调试。

var expectedDate = new Date("Thu Jan 22 2015 00:00:00 GMT+0000 (GMT Daylight Time)");
console.log('why am I doing it wrong?', theDate, expectedDate);
// expect(theDate).toEqual(expectedDate);