[rspec-users] Deprecating the mocking framework?

Wilson Bilkovich wilsonb at gmail.com
Wed Sep 5 14:38:56 EDT 2007

On 9/2/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> On 9/2/07, Wilson Bilkovich <wilsonb at gmail.com> wrote:
> > On 9/1/07, rupert <rupert_apsc at rupespad.com> wrote:
> > >
> > > On 1 Sep 2007, at 10:04, Tom Stuart wrote:
> > >
> > > > On 1 Sep 2007, at 09:31, rupert wrote:
> > > >>>  Are we planning on dumping the mock framework in favor of using
> > > >>> Mocha
> > > >> The idea has been bandied around on the dev list recently
> >
> > This decision, if it is made in this manner, is suicide for RSpec.
> I simply don't understand this statement. Why is this such a big deal?
> RSpec's mock framework offers pretty much ZERO over mocha or flexmock
> - the only thing is that it saves you from typing 24 or 27 characters
> in a config file, depending on your preference. 21 if you use RR.
> After that, the functionality is pretty much the same as the other frameworks.
> > I have been a huge RSpec booster, but this will make me drop it like a hot coal.
> Again - I can't understand where you're coming from here. If you start
> using test/unit or test/spec or any of the other bdd frameworks you'll
> still need to make a decision about a mock framework.
> What is the pain that you're perceiving that will come along w/ us
> dumping the mock framework? Perhaps there's something we can do to
> minimize that pain once we know what it is.
> Cheers,
> David

Hi David;
While I see that later in the thread you have announced a good
(correct, in my opinion) decision, I apologize for being too busy to
get back and answer your question.  I'll do so now, for posterity,
even though it looks like the point is moot.

RSpec is now an extremely 'rich' framework of tools. Sometimes that is
a good thing, sometimes that is a drawback. I and, if I am overhearing
a sane cross-section of folks in #caboose, quite a few others are
willing to 'pay' the price of RSpec's complexity in exchange for the
integrated, end-to-end experience.

RSpec is definitely not the only library that supports 'describe' /
'it' / 'before', 'mock', etc these days.  We wrote one for Rubinius,
for example, because we weren't yet compatible enough with Ruby 1.8 to
run RSpec itself, but we wanted to be able to write specs that would
be RSpec-compatible.

For me, at least, RSpec is on the edge of being too complex to trust,
particularly when probably 95% of my existing specs would pass without
modification under mini_rspec, which is currently 313 LOC.

I don't mean this as a criticism.. it's simply that RSpec has decided
(wisely) to be a 'full stack' BDD framework, and not just a way to
execute expectations and print spec output. If RSpec 'splits', by
removing mocking support, and I now have to think about which
'RSpec-like combo' a given project decided to use before diving in,
that will probably push the cost/benefit ratio into the red for me.

I hope I didn't sound like I was planning to boycott RSpec over this
decision. It's simply that the vast majority of RSpec's value to me,
as a user, lies in its integration.


More information about the rspec-users mailing list