Thanks for the reply David, works a treat. I'll probably end up refacting away from that design but right now that's exactly what I need.
Regards Rhydian On May 17, 9:10 am, David Chelimsky <dchelim...@gmail.com> wrote: > On May 15, 2010, at 2:56 AM, rhydiant wrote: > > > > > I'm writting a code example for the following method: > > > def upload(email_address, product_data) > > errors = [] > > user = resolve_user_from(email_address) > > product_file_name = ProductFileHandler.persist(user, > > product_data, errors) > > if errors.blank? > > # ... do some stuff > > else > > # ... do some other stuff > > end > > end > > > ProductFileHandler.persist will add any errors it encounters to the > > errors array I pass in. In my test of upload, I want to stub that > > error array with different values. After much googling and RSpec doc > > searching I can't find a way to stub arguments like that? Is this > > possible with RSpec? > > Assuming your goal is to test the different branches of the "if > errors.blank?" conditional, you could do something like this: > > ProductFileHandler.stub(:persist) do |_,_,errors| > # add stuff to errors here > # return a reasonable value for product_file_name here > end > > When the ProductFileHandler class receives the persist message, it will now > invoke this block with the three arguments it receives (user, product_data, > errors). Make sense? > > This is pretty invasive but, given the current design, probably the simplest > way to go. If you want something less invasive, you probably need to change > the design. > > HTH, > David > _______________________________________________ > rspec-users mailing list > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users > > -- > You received this message because you are subscribed to the Google Groups > "rspec" group. > To post to this group, send email to rs...@googlegroups.com. > To unsubscribe from this group, send email to > rspec+unsubscr...@googlegroups.com. > For more options, visit this group > athttp://groups.google.com/group/rspec?hl=en. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users