我正在学习摩卡和柴。
我尝试了解何时必须使用to.equal(true)
或to.be.true
来了解哪种情况在不同情况下会更好。
谢谢!
答案 0 :(得分:4)
我对docs的理解是.to
和.be
以及Expect / Should语法的其他各个部分只是语法糖,没有真正的功能。
所以.to.be.true
=== .true
和.to.equal(true)
=== .equal(true)
。因此差异(如果有的话)介于.true
和.equal(true)
之间 - 并且没有任何区别; .true
只是.equal(true)
的一种语法简写。
答案 1 :(得分:3)
他们测试同样的事情。换句话说,只要.to.equal(true)
失败,.to.be.true
也会失败,.to.equal(true)
成功,.to.be.true
也会失败1}}。
但是,确实存在差异,.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")
,测试将失败,但自定义错误消息将被忽略。
答案 2 :(得分:1)