私の目標は、メソッドが呼び出されたかどうかをチェックするrspecテストを書くことです。
notify(result) if notification_allowed?(result)
どちらもnotification_allowedですか? 通知はプライベートメソッドです。より正確には、通知メソッドが呼び出されたかどうかをチェックするテストが必要です。私は以下のようなことをしようとしたが、正しいとは思わない。
subject { described_class.new }
it do
expect(subject).to receive(:notify)
subject.send(:notification_allowed?, true)
end
回答:
回答№1は2呼び出し notification_allowed?
結果を返す以外は何もしません。 notification_allowed?
それは関連していない notify
テストする式が含まれている関数を呼び出す必要があります。
例えば、その方法は...
def check_and_notify(result)
notify(result) if notification_allowed?(result)
end
だからテストは...
subject { described_class.new }
it "calls notify" do
expect(subject).to receive(:notify)
subject.send(:check_and_notify, true)
end