量角器 - toBe(真值)和toBeTruthy()之间的区别

时间:2015-02-24 06:00:20

标签: protractor assertions angularjs-e2e

正如标题所说 - (例如)

之间有区别吗?
 expect(element).isDisplayed().toBeTruthy();

 expect(element).isDisplayed().toBe(truth);

如果有,那有什么区别?

感谢

2 个答案:

答案 0 :(得分:6)

很多东西都是Truthy(即任何不属于以下的东西:false,0,“”,undefined,null,NaN)。 所以

expect('apple').toBeTruthy();

通过。但是:

expect('apple').toBe(true);

失败。

话虽如此,如果你知道你正在测试一个布尔值,那么使用toBeTruthy对我来说看起来更好。

答案 1 :(得分:2)

即使这不是一个新问题,我认为它应该得到一个确切的答案。

expect('apple').toBe(true);

评估为'apple'=== true。 (在茉莉花代码中预期的实际===) 我更喜欢

expect('apple').toBe('apple');

这样你知道你没有得到'橙色'。另一方面。

expect('apple').toBeTruthy();

将'apple'评为!!'apple'(!!茉莉花代码中的实际值)。所以不是'苹果'