是否可以将自定义错误消息添加到如下所示的期望中:
expect(user.uid).to eq uid
我尝试过:
expect(user.uid).to eq uid, "Custom message"
因为https://relishapp.com/rspec/rspec-expectations/docs/customized-message,但我想那是运算符匹配器。还有其他方法吗?
正如您所说,基于Ruby的内置运算符的字符串,数字和数组(==
,>
,<=
,=~
等),匹配器不支持自定义失败消息。
定制消息的目的是帮助调试对定制对象的复杂期望,即使这些对象具有良好的结构以及对上下文和示例的描述,默认的失败消息也可能无法清楚地表明到底出了什么问题。
对于运算符匹配器,默认消息始终尽可能地清晰明了。因此,我认为禁止对其进行定制是一个有意识的设计决定。
结果,我在做什么基本上没问题:
expect(user.uid).to eq(uid), "Custom message"
工作,只是我在user
为零时失败,并且呼叫崩溃而不是生成匹配错误。