[mocha-developer] Mocking system/`

Kevin Clark kevin.clark at gmail.com
Tue Jun 12 15:44:03 EDT 2007


Ah, must have been my reloading issue that was keeping it from
working. Cool, thanks for the help guys.

On 6/12/07, Jonathan Younger <daikini at gmail.com> wrote:
>
> On Jun 12, 2007, at 12:58 PM, Kevin Clark wrote:
>
> > I could have sworn I tried that. Is it working for you?
> >
>
> Actually after further testing the double quotes aren't required
> after all. It seems the key to getting it to work is to put the
> expectation on the object calling the ` method rather than on
> Object.any_instance.
>
> -Jonathan
>
> >> Try adding double quotes around the backtick like this:
> >>
> >> .expects(:"`").with("ls")
> >>
> >> -Jonathan
> >>
> >>
> >>> --- Original Message ---
> >>>> Bah, turned out to be a Merb reloading bug. Nevermind.
> >>>>
> >>>> On 6/11/07, Frederick Cheung <fred at 82ask.com> wrote:
> >>>>>
> >>>>> On 11 Jun 2007, at 23:19, Kevin Clark wrote:
> >>>>>
> >>>>>> This drives me insane on a regular basis. How does one mock
> >>>>>> system('blah') or `blah` ?
> >>>>>>
> >>>>>> Adding expectations on Kernel doesn't do it. Adding
> >>>>>> expectations on
> >>>>>> Object just makes me sad:
> >>>>>>
> >>>>>> Object.any_instance.expects(:system).with('ls')
> >>>>>>   # => #<Mock:0x12b584e>.system('ls') - expected calls: 0, actual
> >>>>>> calls: 1
> >>>>>>
> >>>>>> And this really shouldn't work (and doesn't):
> >>>>>>
> >>>>>> Object.expects(:system).with('ls')
> >>>>>>   # => #<Mock:0x12f287a>.system('ls') - expected calls: 1, actual
> >>>>>> calls: 0
> >>>>>>
> >>>>>> Anyone have a trick they like?
> >>>>>
> >>>>> system etc... are in a module that is included most places, so
> >>>>> if we
> >>>>> have
> >>>>>
> >>>>> class Foo
> >>>>>    def my_method_calling_system
> >>>>>      system('echo "hello world"')
> >>>>>    end
> >>>>> end
> >>>>>
> >>>>> Then you need to do something like
> >>>>>
> >>>>> f = Foo.new
> >>>>> f.expects(:system).
> >>>>> f.my_method_calling_system
> >>>>>
> >>>>>
> >>>>> I would have expected Object.any_instance.expects(:system) to work
> >>>>> but a cursory attempt suggests it doesn;t
> >>>>>
> >>>>> Fred
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> mocha-developer mailing list
> >>>>> mocha-developer at rubyforge.org
> >>>>> http://rubyforge.org/mailman/listinfo/mocha-developer
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> Kevin Clark
> >>>> http://glu.ttono.us
> >>>> _______________________________________________
> >>>> mocha-developer mailing list
> >>>> mocha-developer at rubyforge.org
> >>>> http://rubyforge.org/mailman/listinfo/mocha-developer
> >>>
> >>> _______________________________________________
> >>> mocha-developer mailing list
> >>> mocha-developer at rubyforge.org
> >>> http://rubyforge.org/mailman/listinfo/mocha-developer
> >>
> >> _______________________________________________
> >> mocha-developer mailing list
> >> mocha-developer at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/mocha-developer
> >>
> >
> >
> > --
> > Kevin Clark
> > http://glu.ttono.us
> > _______________________________________________
> > mocha-developer mailing list
> > mocha-developer at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/mocha-developer
>
> _______________________________________________
> mocha-developer mailing list
> mocha-developer at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mocha-developer
>


-- 
Kevin Clark
http://glu.ttono.us


More information about the mocha-developer mailing list