我正在學習摩卡和柴。to.equal(true)和to.be.true之間有什麼區別?
我嘗試瞭解何時必須使用to.equal(true)
或to.be.true
,所以我想知道哪個更適合每種情況。
謝謝!
我正在學習摩卡和柴。to.equal(true)和to.be.true之間有什麼區別?
我嘗試瞭解何時必須使用to.equal(true)
或to.be.true
,所以我想知道哪個更適合每種情況。
謝謝!
我從docs的理解是,.to
和.be
和各種的期望其他片/如果語法只是語法糖,沒有真正的功能。
所以.to.be.true
=== .true
和.to.equal(true)
=== .equal(true)
。所以,如果有的話,差異在.true
和.equal(true)
之間 - 並且沒有任何區別; .true
只是.equal(true)
的語法簡寫。
他們測試同樣的事情。換句話說,無論哪裏.to.equal(true)
失敗,.to.be.true
也將失敗,並且.to.equal(true)
成功,.to.be.true
也成功。
然而,它們的區別在於.to.equal
需要而.to.be.true
一個可選的自定義錯誤消息並不需要自定義錯誤消息。
var settings = {
verbose: "foo"
};
settings.verbose.should.equal(true, "verbose setting");
會顯示類似的錯誤消息:
AssertionError: verbose setting: expected 'foo' to equal true
同樣的事情expect(settings.verbose).to.equal(true, "verbose setting")
。如果沒有自定義錯誤信息,錯誤將是:
AssertionError: expected 'foo' to equal true
如果使用expect(settings.verbose).to.be.true("verbose setting")
測試將失敗,但自定義錯誤消息將被忽略。