2

使用 rpec 时,我不知道什么是“be”。

target.should be 5

我知道如何使用它,但它是如何实现的?是不是有点像运营商,即

target.should.send(:be, 5)

我怎样才能实现类似的东西?

4

1 回答 1

3

be是一种返回 RSpec 匹配器的方法,如 d11wtq 在上面的评论中提到的

您可以实现任何其他返回匹配器的方法,但还有其他更简单的方法来编写匹配器。

RSpec::Matchers.define :be_a_multiple_of do |expected|
  match do |actual|
    actual % expected == 0
  end
end

describe 9 do
  it "should be a multiple of 3" do
    9.should be_a_multiple_of(3)
  end
end
于 2012-05-01T16:50:08.423 回答