Просто интересно, есть ли способ получить доступ к локальным переменным в 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 [: payment] работает только в том случае, если я превращаю локальную переменную 'payment' в '@payments'.Это не главная проблема, но я бы предпочел, чтобы мои тесты rspec не влияли на реальный код.
Итак, есть ли способ ссылаться на локальные переменные в присваиваниях rspec?
Cheers...