メッセージの許可
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
を実行すると、
すべての例がパスするはずです。