首页 > 解决方案 > Jasmine 'expectationFailedOutput' 消息应该描述预期的内容还是发生的事情?

问题描述

Jasmineexpect语句可能会产生毫无价值的错误消息,例如:

 Expected true to be false.

为了解决这个问题,匹配器允许您添加一个澄清消息作为第二个参数,expectationFailedOutput

toBe(expected: any, expectationFailOutput?: any): Promise<void>;

这允许您编写:

expect(await password.isDisplayed).toBe(true, "Password field should be visible");
expect(await password.isDisplayed).toBe(true, "Password field was not visible");

这些将分别产生以下错误消息:

Expected false to be true, 'Password field should be visible'.
Expected false to be true, 'Password field was not visible'.

请注意,这些行是相同的,除了在第一种情况下,我描述了期望测试的内容,在第二种情况下,我描述了实际发生的情况。

显然,我应该选择这些约定之一并在我的代码库中始终如一地使用它,但我在文档中找不到任何关于典型约定的内容。信息应该描述我们期望发生的事情,还是应该描述已经发生的事情?

如果 Jasmine 团队对此没有约定,也许参与过很多 Jasmine 项目的人知道典型的约定是什么。

标签: jasminejasmine2.0

解决方案


我不明白为什么它should是一致的,为什么它obviously。有些检查很容易理解,有些检查很难。当你觉得你需要消息时 - 添加它。当它可能很简单时,不要让它变得困难。


推荐阅读