在 RSpec 外部独立使用 `rspec-mocks`(独立模式)

在 REPL(如 IRB)或一次性脚本中,在 RSpec 环境外部,使用 `require "rspec/mocks/standalone"` 在顶层(例如 `main`)公开 API。

允许 RSpec 外部消息

假设有一个名为“example.rb”的文件,其中包含

require "rspec/mocks/standalone"

greeter = double("greeter")
allow(greeter).to receive(:say_hi) { "Hello!" }
puts greeter.say_hi

我运行 `ruby example.rb`

那么输出应包含“Hello!”。

期望 RSpec 外部消息

假设有一个名为“example.rb”的文件,其中包含

require "rspec/mocks/standalone"

greeter = double("greeter")
expect(greeter).to receive(:say_hi)

RSpec::Mocks.verify

我运行 `ruby example.rb`

那么它应该失败并显示以下输出

(替身“greeter”)。say_hi(*(任何参数))
RSpec::Mocks::MockExpectationError
预期:1 次,任何参数
接收:0 次,任何参数