当我想知道类似此处的问题的内容时,该怎么办?
成为()
expect().toBe() 定义为:
function toBe() {
return {
compare: function(actual, expected) {
return {
pass: actual === expected
};
}
};
}
它执行其测试,===这意味着当用作时expect(foo).toBe(true),只有foo实际具有该值时,它才会通过true。真实的价值不会通过测试。
toBeTruthy()
expect().toBeTruthy() 定义为:
function toBeTruthy() {
return {
compare: function(actual) {
return {
pass: !!actual
};
}
};
}
类型强制
如果此值强制转换为布尔值,则该值为真true。该操作!!通过强制传递给expect布尔值的值来测试真实性。请注意,反之目前公认的答案是什么暗示,== true是不是对感实性正确的测试。您会得到一些有趣的东西,例如
> "hello" == true
false
> "" == true
false
> [] == true
false
> [1, 2, 3] == true
false
而使用!!收益率:
> !!"hello"
true
> !!""
false
> !![1, 2, 3]
true
> !![]
true
(是的,是否为空,数组是真实的。)
是真实的()
expect().toBeTrue()是Jasmine-Matchers的一部分(Jasmine-Matchers的一部分在npm上注册,就像jasmine-expect在以后的项目jasmine-matchers首先注册一样)。
expect().toBeTrue() 定义为:
function toBeTrue(actual) {
return actual === true ||
is(actual, 'Boolean') &&
actual.valueOf();
}
与expect().toBeTrue()和的区别expect().toBe(true)在于expect().toBeTrue()测试它是否正在处理Boolean对象。expect(new Boolean(true)).toBe(true)会失败,而expect(new Boolean(true)).toBeTrue()会通过。这是因为这个有趣的事情:
> new Boolean(true) === true
false
> new Boolean(true) === false
false
至少这是事实:
> !!new Boolean(true)
true
哪个最适合用于elem.isDisplayed()?
最终,量角器将此请求交给了Selenium。该文档指出所产生的值.isDisplayed()是一个承诺解析为一个boolean。我会从表面上看待它,并使用.toBeTrue()或.toBe(true)。如果我发现实现返回真/假值的情况,我将提交错误报告。
.toBe(true)==.toBeTrue()。toBeTruthy()不仅可以在真真,但在123,“dfgdfg”,[1,2,3],等等...基本上if(x==true)是truthy,而if(x===true)为真真。