chai-datetime
Chai 的匹配器,用于帮助对 JavaScript Date 对象进行常见的日期比较断言。
为什么?
在 JavaScript 中比较日期对象不是基于值的,这需要您调用 getTime() 来确保值匹配。这些匹配器消除了这样做的必要性。此外,当使用标准的 Chai 等于匹配器比较 getTime() 值时,您不会得到非常可读的输出,因为您正在比较纪元秒。
更好的错误消息
使用 getTime() 比较日期值以获得相等性会产生不可读的错误消息
AssertionError: expected 1369944360000 to equal 1369944300000
使用 chai-datetime 来获得更易读的错误消息
AssertionError: expected Thu May 30 2013 16:06:00.000 (-04:00) to equal Thu May 30 2013 16:05:00.000 (-04:00)
用法
浏览器
<script src="chai.js"></script>
<script src="chai-datetime.js"></script>
服务器
var chai = require('chai');
chai.use(require('chai-datetime'));
断言
有一组断言在时间和日期上起作用。任何在名称中指定日期的断言只比较 Date 对象的日期部分。
- equalTime
- closeToTime(以秒为单位的可配置增量)
- beforeTime
- beforeOrEqualTime
- afterTime
- afterOrEqualTime
- withinTime
- equalDate
- beforeDate
- beforeOrEqualDate
- afterDate
- afterOrEqualDate
- withinDate
所有断言都针对 BDD 和 TDD 语法定义。
var d1 = new Date(2013, 4, 30, 16, 5),
d2 = new Date(2013, 4, 30, 17);
d1.should.equalDate(d2)
expect(d1).to.equalDate(d2)
assert.equalDate(d1, d2)
感谢
感谢 @mitchlloyd 与我一起进行配对,帮助我入门。感谢 @rockwood 忍受我不断的嘲讽。
感谢 chai-fuzzy 模块,它给了我关于如何构建和测试 Chai 插件的思路。