Jasmine 应该是茉莉花';预期失败输出';消息描述了预期的情况,或者发生了什么?

Jasmine 应该是茉莉花';预期失败输出';消息描述了预期的情况,或者发生了什么?,jasmine,jasmine2.0,Jasmine,Jasmine2.0,Jasmineexpect语句可能会产生毫无价值的错误消息,如: Expected true to be false. 为了解决这个问题,matchers允许您添加澄清消息作为第二个参数,expectationFailedOutput: toBe(expected: any, expectationFailOutput?: any): Promise<void>; 这将分别产生以下错误消息: Expected false to be true, 'Password field

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

 Expected true to be false.
为了解决这个问题,matchers允许您添加澄清消息作为第二个参数,
expectationFailedOutput

toBe(expected: any, expectationFailOutput?: any): Promise<void>;
这将分别产生以下错误消息:

Expected false to be true, 'Password field should be visible'.
Expected false to be true, 'Password field was not visible'.
请注意,这些行是相同的,除了在第一种情况下,我描述了expect的测试目的,在第二种情况下,我描述了实际发生的情况

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


如果Jasmine团队没有这方面的约定,也许有人在许多Jasmine项目中工作过,知道典型的约定是什么。

我不明白为什么
应该保持一致,为什么
显然是
。有些检查很容易理解,有些检查很难理解。当您觉得需要信息时,请添加它。当问题可能很简单时,不要让它变得困难。

你不理解这个问题。这不是我是否应该添加澄清信息。问题是:如果我添加了一条澄清信息,它应该描述我所期望的,还是实际发生的事情。这些是相对的。e、 如果我说expect(x)。toEqual(y),我可以将其描述为“x应该等于y”,因此错误消息表示我期望发生的事情,或者我可以说“x不等于y”,因此错误消息表示实际发生的事情。我需要一致地使用其中一个,因为否则错误消息更难解释。我不知道这是否有帮助,但我们在基于Java和JUnit的测试中使用第一个变体。我们还试图以一种明确传达所用约定的方式来表述断言消息。例如,对于给定的示例,我们将使用断言消息“预期可见密码字段”。这两点都很有用,谢谢。
Expected false to be true, 'Password field should be visible'.
Expected false to be true, 'Password field was not visible'.