我正在学习摩卡和柴。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")
测试将失败,但自定义错误消息将被忽略。