Просто интересно, есть ли способ получить доступ к локальным переменным в rspec, не превращая их в переменные экземпляра? Чтобы объяснить мою проблему:
У меня есть следующее действие:
def queue_due_mail
payments = Payment.due_soon.where(:send_reminder => true)
payments.each do |p|
PaymentMailer.delay.reminder_email(p)
p.send_reminder = false
p.save
end
redirect_to root_path
end
И в моей спецификации я хочу запустить что-то вроде этого:
it "should assign nearly due payments to payments" do
Payment.stub_chain(:due_soon, :where) { [mock_payment] }
get :queue_due_mail
assigns[:payments].should eq([mock_payment])
end
Проблема в том, что вызов assigns [: payments] работает, только если я включаю локальную переменную payments в @payments. Это не серьезная проблема, но я бы предпочел, чтобы мои тесты rspec не влияли на реальный код.
Итак, есть ли способ ссылаться на локальные переменные в rspec?
Ура ...