У меня есть модель Lead и обратный вызов: after_commit :create, :send_to_SPL
Я использую Rails-4.1.0, ruby-2.1.1, RSpec.
1) Эта спецификация не проходит:
context 'callbacks' do
it 'shall call \'send_to_SPL\' after create' do
expect(lead).to receive(:send_to_SPL)
lead = Lead.create(init_hash)
p lead.new_record? # => false
end
end
2) Эта спецификация тоже не проходит:
context 'callbacks' do
it 'shall call \'send_to_SPL\' after create' do
expect(ActiveSupport::Callbacks::Callback).to receive(:build)
lead = Lead.create(init_hash)
end
end
3) Этот проход проходит, но я думаю, что он не тестирует обратный вызов after_commit:
context 'callbacks' do
it 'shall call \'send_to_SPL\' after create' do
expect(lead).to receive(:send_to_SPL)
lead.send(:send_to_SPL)
end
end
Каков наилучший способ проверить after_commit обратные вызовы в Rails?