Вы не должны издеваться или заглушать этот объект, потому что тогда вы ничего не будете тестировать, вы просто проверите, что вы настроили правильные макеты, которые бесполезны.
Я бы сделал что-то вроде:
context 'when offer is invalid' do
it 'catch validation error' do
# this is the tricky part, you are not showing your model so I don't
# know what's an invalid AASM transition, but you should set an status
# that can't be transitioned to "expired" here
invalid_offer = create(:bank_offer,
inquiry_process: process_past_date_of_interest,
status: <<<something here>>>)
expect(Rollbar).to receive(:error)
invalid_offer.call
end
end
Вам необходимо создать действительную запись, но со статусом, который нельзя перевести в epired
. Затем вы добавляете ожидание для объекта Rollbar и затем вызываете метод, который должен вызвать исключение AASM. Убедитесь, что ваш объект действителен, чтобы у вас не было других ошибок, скрывающих фактическую ошибку, которую вы тестируете.
Надеюсь, это поможет.