gpt4 book ai didi

ruby-on-rails - Rspec分配局部变量?

转载 作者:行者123 更新时间:2023-12-03 11:09:06 25 4
gpt4 key购买 nike

只是想知道是否有一种方法可以在rspec中访问局部变量而不将其转换为实例变量?为了解释我的问题:

我有以下 Action :

  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”时,assigns [:payments]调用才起作用。这不是主要问题,但是我宁愿我的rspec测试不受实际代码的影响。

那么,有没有办法在rspec分配中引用局部变量?

干杯...

最佳答案

基本上没有可以将其视为黑盒测试。 rspec测试方法进入或退出方法的内容( Controller Action 是方法)。任何局部变量都应在方法结束时丢弃-因此,在方法调用结束后无法进行测试。

关于ruby-on-rails - Rspec分配局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7995957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com