Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
765 views
in Technique[技术] by (71.8m points)

ruby on rails - RSpec: Stub chains with arguments?

Just wondering if/how arguments can be passed in rspec stub chains. To give an example, suppose I have the following action:

def index
  @payments = Payment.order(:updated_at).where(:paid => true)
  @bad_payments = Payment.order(:some_other_field).where(:paid => false)
end

In my controller spec, I'd like to be able to stub out both methods and return different results. If only the @payments field were in the action I'd use something like

Payment.stub_chain(:order, :where) { return_this }

But of course, that will return the same value for @bad_payments.

So - in short, how do I include the :updated_at and :paid => true as stub conditions?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use this:

Payment.stub_chain(:order, :where).with(:updated_at).with(:paid => true) { return_this }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...