"expect(9).to be > 6" 如何是有效的表达方式?

how "expect(9).to be > 6" is valid expression?

RSpec doc中,我发现了一些看起来很奇怪的东西,比如

expect(9).to be > 6

我不知道上面的表达式如何有效。

>怎么会这样?我搜索 rspec github,但没有找到任何线索。

相当于

expect(9).to(be > 6)

相当于:

expect(9).to(be.>(6))

在 ruby 中,您可以覆盖 class 上的 > 运算符,在这种情况下 RSpec::Matchers::BuiltIn::Be class 即 [=12] =] 方法 returns.

如果你想查看源代码,相关部分是here