chai-datetime
為 chai 提供匹配器,以協助針對 JavaScript Date 物件進行常見的日期比較斷言。
為什麼?
在 JavaScript 中比較日期物件不是基於值,這需要您呼叫 getTime() 以確保值匹配。這些匹配器消除了這樣做的需要。此外,當使用標準 chai 相等匹配器比較 getTime() 值時,您不會得到非常易讀的輸出,因為您比較的是 epoch 秒。
更好的錯誤訊息
使用 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 外掛的想法。