[mocha-developer] Mocha Mock's hanging on after test run?

Kevin Clark kevin.clark at gmail.com
Wed Jan 17 14:21:24 EST 2007


Oh, or re-reading this, if you'd like to push a bugfix it would make
my life easy :)

On 1/17/07, Kevin Clark <kevin.clark at gmail.com> wrote:
> Hi James,
> Since this is going into rails core, the fix would need to make tests
> pass for _everyone_ doing dev, so just patching the local machine
> won't work.
>
> I'll wait on 0.4 (hopefully soon). Thanks for all the work. You guys are great.
>
> Kev
>
> On 1/17/07, James Mead <jamesmead44 at gmail.com> wrote:
> > On 17/01/07, Kevin Clark <kevin.clark at gmail.com> wrote:
> > >
> > > Hi guys,
> > > I'm running mocha (0.3.2) against Rails core and just found an issue
> > > where the mock doesn't go away after the test is run.
> > >
> > > For example:
> > >
> > >   def test_reset_bang_doesn_reinstall_named_routes
> > >     ActionController::Routing::Routes.named_routes.expects(:install).never
> > >     @session.reset!
> > >   end
> > >
> > >   def test_zzz
> > >     puts ActionController::Routing::Routes.named_routes.inspect
> > >     assert !ActionController::Routing::Routes.named_routes
> > >   end
> > >
> > > The print when test_zzz is run gives this:
> > >
> > > #<ActionController::Routing::RouteSet::NamedRouteCollection:0x14e0da8
> > > @mocha=#<Mocha::Mock:0x2333504 @__mock_name=nil,
> > > @expectations=[#<Mocha::Expectation:0x2333158 @count=0,
> > > @parameter_block=nil,
> > > @backtrace=["test/controller/integration_test.rb:146:in
> > > `test_reset_bang_doesn_reinstall_named_routes'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testcase.rb:72:in `__send__'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testcase.rb:72:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'",
> > > "/usr/local/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in
> > > `run_suite'",
> > > "/usr/local/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:67:in
> > > `start_mediator'",
> > > "/usr/local/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:41:in
> > > `start'",
> > > "/usr/local/lib/ruby/1.8/test/unit/ui/testrunnerutilities.rb:29:in
> > > `run'", "/usr/local/lib/ruby/1.8/test/unit/autorunner.rb:200:in
> > > `run'", "/usr/local/lib/ruby/1.8/test/unit/autorunner.rb:13:in `run'",
> > > "/usr/local/lib/ruby/1.8/test/unit.rb:278",
> > > "test/controller/integration_test.rb:6"], @return_value=nil,
> > > @parameters=** any **, @invoked=4, @method_name=:install>],
> > > @stub_everything=false>, @module=#<Module:0x14e0d44>, @helpers=[],
> > > @routes={}>
> > >
> > >
> > > This is a big deal because this causes tests to fail in other places
> > > in the framework.
> > >
> > > Ideas?
> > >
> >
> > Hi Kevin,
> >
> > Sorry not to respond sooner - I've been away on holiday.
> >
> > I've managed to reproduce the problem locally.
> >
> > I haven't had a chance to investigate it thoroughly, but it looks like you
> > could fix it by patching the gem as follows...
> >
> > Replace the comment on line #13 of instance_method.rb as follows...
> >
> >     def unstub
> >       # intentionally empty
> >     end
> >
> > becomes...
> >
> >     def unstub
> >       stubbee.reset_mocha
> >     end
> >
> > I'm not sure how this bug crept in, but the HEAD version of Mocha does not
> > seem to have the same bug.
> >
> > We're really close to releasing a new version (0.4) of the gem, but if this
> > is causing you serious problems I will release a patched 0.3.3 version.
> >
> > (Note that the patch above will break a couple of unit tests).
> >
> > Let me know.
> >
> > --
> > James.
> > http://blog.floehopper.org
> > _______________________________________________
> > mocha-developer mailing list
> > mocha-developer at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/mocha-developer
> >
>
>
> --
> Kevin Clark
> http://glu.ttono.us
>


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


More information about the mocha-developer mailing list