rspec中的自定义错误消息,当比较相等时

问题描述 投票:0回答:2

是否可以将自定义错误消息添加到如下所示的期望中:

expect(user.uid).to eq uid

我尝试过:

expect(user.uid).to eq uid, "Custom message"

因为https://relishapp.com/rspec/rspec-expectations/docs/customized-message,但我想那是运算符匹配器。还有其他方法吗?

rspec
2个回答
0
投票

正如您所说,基于Ruby的内置运算符的字符串,数字和数组(==><==~等),匹配器不支持自定义失败消息。

定制消息的目的是帮助调试对定制对象的复杂期望,即使这些对象具有良好的结构以及对上下文和示例的描述,默认的失败消息也可能无法清楚地表明到底出了什么问题。

对于运算符匹配器,默认消息始终尽可能地清晰明了。因此,我认为禁止对其进行定制是一个有意识的设计决定。


0
投票

结果,我在做什么基本上没问题:

expect(user.uid).to eq(uid), "Custom message"

工作,只是我在user为零时失败,并且呼叫崩溃而不是生成匹配错误。

© www.soinside.com 2019 - 2024. All rights reserved.