[rspec-users] Deprecating the mocking framework?

Pat Maddox pergesu at gmail.com
Sun Sep 2 03:05:59 EDT 2007

On 9/1/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 have been a huge RSpec booster, but this will make me drop it like a hot coal.
> =(

While I won't drop RSpec ;) I agree that removing the mocking
framework is a mistake.

With the integration of rbehave, RSpec is a complete BDD framework.
It allows for behavior specification at the app-level and at the
object-level.  I'm sure everyone will agree that mocking is integral
to the object specification component of BDD.  To paraphrase Aslak,
"if you're not using mock objects then it ain't BDD."

I can understand not wanting to reinvent the wheel, and there are mock
frameworks that sufficiently do the job.  However the whole point of
RSpec is that we're not satisfied with "sufficient" but instead demand
a tool that works the way our brains think.  I haven't used Mocha or
Flexmock extensively because RSpec's mocking has been great for
me...but I remember taking a look at them when Mocha support was first
added to RSpec.  There were some things that RSpec's framework did
better and more clearly than Mocha.  I wish I could remember them
precisely, but it was quite a while back.  The point is, if the mock
framework feels off even a little bit, it basically defeats the
purpose of RSpec.  At the very least, it undermines it to a degree.

RSpec should keep its mocking framework because it's the only
framework that is designed with the same philosophy as RSpec.  In fact
I feel insanely strange thinking of them as separate entities.  The
best scenario, imo, is one where we have a mocking framework tightly
coupled to the overall vision of the RSpec project, but that allows
people to use something else if they really want.  I think it's
important that RSpec remain a complete BDD framework with all
necessary components working in harmony.


More information about the rspec-users mailing list