[rspec-users] Mock Global method
garren.smith at gmail.com
Thu Mar 25 09:44:41 EDT 2010
I'm actually looking to mock "my_helper_method" here. Or to be more
general any method that is created outside of a class.
On Mar 25, 6:27 am, "J. B. Rainsberger" <jbrainsber... at gmail.com>
> garren wrote:
> > I'm very new to ruby and mocking a dynamic language. I would like to
> > mock a helper method in Sinatra. So an example is this:
> > helper do
> > def my_helper_method
> > puts "Should do something useful here..."
> > end
> > end
> > How would I mock that method and how would I mock a method in general
> > that is a global method. Is it better practice not to have global
> > methods? Should I rather have an object inside the method call that
> > does all the work and I can mock that?
> You can probably set an expectation on Kernel#puts, since although #puts
> looks global, it belongs to Kernel.
> As for whether you should use #puts directly here, or indirectly through
> another object that you can easily control, that depends on the
> situation. Try both and compare the results.
> In your situation, I'd probably just set expectations on Kernel#puts
> until that caused me problems, at which point I'd separate the behavior
> of deciding what to print from deciding where to print it. I find
> formatting messages much easier to check, in general, than displaying them.
> Have fun.
> J. B. Rainsberger ::http://www.jbrains.ca::http://www.thecodewhisperer.com
> rspec-users mailing list
> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
More information about the rspec-users