比较相等时 rspec 中的自定义错误消息
Custom error messages in rspec when comparing equality
是否可以将自定义错误消息添加到如下所示的期望中:
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
为零,并且调用崩溃而不是生成匹配错误。
是否可以将自定义错误消息添加到如下所示的期望中:
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
为零,并且调用崩溃而不是生成匹配错误。