rspec-mocks
をRSpecの外部で使用する(スタンドアロンモード)
require "rspec/mocks/standalone"
を使用して、REPL(例:IRB)やワンオフのスクリプトなど、RSpec環境の外部でAPIをトップレベル(例:main
)で公開します。
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
を実行すると、
以下の出力で失敗するはずです。
| (Double "greeter").say_hi(*(any args)) | | RSpec::Mocks::MockExpectationError | | 期待値: 1回の呼び出し(任意の引数) | | 受信値: 0回の呼び出し(任意の引数) |