只是想知道是否有办法在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
问题是,只有当我将本地变量'payments'变为'@payments'时,分配[:payments]调用才有效。这不是一个主要问题,但我宁愿不让我的rspec测试受到实际代码的影响。
那么,有没有办法在rspec指定中引用局部变量?
干杯...
答案 0 :(得分:14)