Using rspec-mocks on its own outside of RSpec (standalone mode)
require "rspec/mocks/standalone" to expose the API at the top level (e.g. main) outside
the RSpec environment in a REPL like IRB or in a one-off script.
Allow a message outside RSpec
Given a file named “example.rb” with:
require "rspec/mocks/standalone"
greeter = double("greeter")
allow(greeter).to receive(:say_hi) { "Hello!" }
puts greeter.say_hi
When I run ruby example.rb
Then the output should contain “Hello!”.
Expect a message outside RSpec
Given a file named “example.rb” with:
require "rspec/mocks/standalone"
greeter = double("greeter")
expect(greeter).to receive(:say_hi)
RSpec::Mocks.verify
When I run ruby example.rb
Then it should fail with the following output:
| (Double “greeter”).say_hi(*(any args)) |
| RSpec::Mocks::MockExpectationError |
| expected: 1 time with any arguments |
| received: 0 times with any arguments |