On Thu, Jun 12, 2008 at 4:03 PM, john <[EMAIL PROTECTED]> wrote: > Hey Guys, > > I'm trying to mock the Rails Logger for the following code: > > > ... > rescue TimeoutError => error > $logger.error("#{self.name} Timeout for #{path}: #{error}") and return > rescue SocketError => error > $logger.error("#{self.name} SocketError for #{path}: #{error}") and > return > rescue StandardError => error > $logger.error("#{self.name} Error for #{path}: #{error}") and return > end > ... > > > > my failed attempt to spec: > > logger = mock_model(Logger) > logger.stub(:error) > logger.should_receive(:error).with(:any_args)
You never set the $logger var to your new logger. So it wouldn't do anything. > Do you know of any solution for mocking this? You could consider partially stubbing the rails logger. $logger.should_receive(:error) > Also, do you think the Rails Logger is worth mocking? I would say no. In particular, sometimes logging is a domain requirement. If that's the case, you want to separate that kind of logging from all the log info that Rails generates. Read http://www.mockobjects.com/2007/04/test-smell-logging-is-also-feature.html to get some info on mocking loggers. Pat _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users