deepEqual 中奇怪的新日期
strange new Date in deepEqual
我有这个代码
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: ...]
之间?
在我看来,这就是您的测试套件向您显示该对象是 Date
class 的实例的方式。如果它只是 2017-03-08T21:58:45.767Z
,您将不会获得此信息,并且在更复杂的情况下可能更难调试。
第一行,
AssertionError: { date: '' } deepEqual { date: 2017-03-08T21:58:45.767Z }
它显示的是 toISOString()
表示,但这可能会产生误导,因为 date
的值 而不是 该字符串。该值是一个 Date
对象,因此在 diff 中它清楚地表明了这一点。
我有这个代码
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: ...]
之间?
在我看来,这就是您的测试套件向您显示该对象是 Date
class 的实例的方式。如果它只是 2017-03-08T21:58:45.767Z
,您将不会获得此信息,并且在更复杂的情况下可能更难调试。
第一行,
AssertionError: { date: '' } deepEqual { date: 2017-03-08T21:58:45.767Z }
它显示的是 toISOString()
表示,但这可能会产生误导,因为 date
的值 而不是 该字符串。该值是一个 Date
对象,因此在 diff 中它清楚地表明了这一点。