RSpec的Expect命令中的逗号是什么?

时间:2018-08-20 15:23:10

标签: ruby rspec

给出以下代码:

expect(exit_code).to eq(0), result

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

1 个答案:

答案 0 :(得分:7)

这种情况并不常见,但是to方法可以接受一个附加参数,当示例失败时,该参数将显示一条消息。看看source code

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

expect(exit_code).to(eq(0), "spec failed, because exit_code is 0, please handle it")

第二个参数也可以是proc

expect(exit_code).to(eq(0), -> { "expected zero, got: #{exit_code}" })

在@Stefan评论之后,这是documentation,有关自定义失败消息。