逗号在RSpec的expect命令中做了什么?

Fur*_*usD 3 ruby rspec

鉴于此代码:

expect(exit_code).to eq(0), result
Run Code Online (Sandbox Code Playgroud)

我理解expect(exit_code).to eq(0)应该做什么,但我不明白逗号或result变量在做什么.有人可以为我阐明一下吗?

Igo*_*dov 7

它并不常见,但是to当示例失败时,方法可以接受另一个参数,即显示的消息.看看源代码.

因此,可以为自定义消息提供额外信息,如何处理失败的规范:

expect(exit_code).to(eq(0), "spec failed, because exit_code is 0, please handle it")
Run Code Online (Sandbox Code Playgroud)

第二个参数,也可以是proc:

expect(exit_code).to(eq(0), -> { "expected zero, got: #{exit_code}" })
Run Code Online (Sandbox Code Playgroud)

关注@ Stefan的评论,这里是关于自定义失败消息的文档.