我的目标是编写检查方法是否被调用的rspec测试。
notify(result) if notification_allowed?(result)
都是notification_allowed?和notify是私有方法。更确切地说,我需要一个检查是否已调用notify方法的测试。我尝试过像下面这样的事情,但它看起来并不正确。
subject { described_class.new }
it do
expect(subject).to receive(:notify)
subject.send(:notification_allowed?, true)
end
答案 0 :(得分: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