我有这段代码
var assert = require('assert');
describe('date', function() {
it('deep equal', function() {
assert.deepEqual({date: ''}, {date:new Date()});
});
});
当我用mocha运行测试时,我得到了这个
AssertionError: { date: '' } deepEqual { date: 2017-03-08T21:58:45.767Z }
+ expected - actual
{
- "date": ""
+ "date": [Date: 2017-03-08T21:58:45.767Z]
}
at Context.<anonymous> (test/test_date.js:5:12)
为什么在deepEqual中生成的日期具有此格式[Date: 2017-03-08T21:58:45.767Z]
而不是此格式2017-03-08T21:58:45.767Z
?
为什么生成的日期位于方括号[Date: ...]
?
答案 0 :(得分:2)
在我看来,这是您的测试套件向您展示该对象是Date
类的实例的方式。如果它只是2017-03-08T21:58:45.767Z
,您将无法获得此信息,并且在更复杂的情况下可能更难调试。
在第一行,
AssertionError: { date: '' } deepEqual { date: 2017-03-08T21:58:45.767Z }
它显示了toISOString()
表示,但这可能会产生误导,因为date
的值不该字符串。该值是Date
对象,因此在差异中它清楚地表明了这一点。