メインコンテンツまでスキップ

メッセージの許可

Test doublesはデフォルトで「厳格」です。明示的に許可または期待されていないメッセージはエラーを発生させます。allow(...).to receive(...)を使用して、ダブルが受け取ることを許可するメッセージを設定します。また、allow(...).to receive_messages(...)を使用して、一括で許可されるメッセージ(および返り値)を設定することもできます。

許可されたメッセージはデフォルトでnilを返します

次の内容のファイル「allow_message_spec.rb」があるとします:

RSpec.describe "allow" do
it "returns nil from allowed messages" do
dbl = double("Some Collaborator")
allow(dbl).to receive(:foo)
expect(dbl.foo).to be_nil
end
end

rspec allow_message_spec.rbを実行すると、

すべての例がパスするはずです。

receive_messagesを使用して一括でメッセージを許可できます

次の内容のファイル「receive_messages_spec.rb」があるとします:

RSpec.describe "receive_messages" do
it "configures return values for the provided messages" do
dbl = double("Some Collaborator")
allow(dbl).to receive_messages(:foo => 2, :bar => 3)
expect(dbl.foo).to eq(2)
expect(dbl.bar).to eq(3)
end
end

rspec receive_messages_spec.rbを実行すると、

すべての例がパスするはずです。