How to use different mocking frameworks?


#1

Hi,

I’m pretty new to Rspec, so hope someone can help me out with this.

I’m leveraging a couple pre-existing applications in my current
project, both have fairly robust test suites in Rspec already.
However, one is using Rspec’s builit in mocking, and the other is
using mocha.

If I set config.mock_with mocha in spec_helper.rb, then all of the
rspec mocks fail. If I comment this out, all of the specs with mocha
fail.

Is there some way to set the mocking framework on a test and/or file
basis? I’ve been all over Google, and can’t seem to find a resolution
to this. I really don’t want to have to back through and rewrite
someone else’s test suite that is already working.

Thanks in advance for your help,
Val


#2

On Sat, Mar 14, 2009 at 8:37 PM, Val removed_email_address@domain.invalid wrote:

rspec mocks fail. If I comment this out, all of the specs with mocha
fail.

Is there some way to set the mocking framework on a test and/or file
basis?

Nope. Gotta pick one or the other. Reason - diff mock frameworks
invade Object in diff ways - mixing and matching is dangerous to your
health.


#3

On Sun, Mar 15, 2009 at 12:01 AM, David C. removed_email_address@domain.invalid
wrote:

If I set config.mock_with mocha in spec_helper.rb, then all of the
rspec mocks fail. If I comment this out, all of the specs with mocha
fail.

Is there some way to set the mocking framework on a test and/or file
basis?

Nope. Gotta pick one or the other. Reason - diff mock frameworks
invade Object in diff ways - mixing and matching is dangerous to your
health.

I mean within one project. Of course you can use rspec/mocks in one,
mocha in another, flexmock and rr in others.


#4

Would it be possible to split the tests into separate runs - a bit like
having two different run configurations with cucumber?

2009/3/15 David C. removed_email_address@domain.invalid


#5

On Sun, Mar 15, 2009 at 7:38 AM, Andrew P. removed_email_address@domain.invalid
wrote:

Would it be possible to split the tests into separate runs - a bit like
having two different run configurations with cucumber?

If you split the specs w/ rspec-mocks and those w/ mocha in separate
dirs, you could run them each manually. Or you could create rake tasks
to do it.


#6

Okay. Thanks for your responses.

I guess I’ll try splitting them into separate directories. Will each
directory automatically include it’s own spec_helper.rb?


#7

On Sun, Mar 15, 2009 at 1:51 PM, Val removed_email_address@domain.invalid wrote:

Okay. Thanks for your responses.

I guess I’ll try splitting them into separate directories. Will each
directory automatically include it’s own spec_helper.rb?

Not sure I understand that question. You’re going to be manually
splitting things up, right?


#8

Val wrote:

Okay. Thanks for your responses.

I guess I’ll try splitting them into separate directories. Will each
directory automatically include it’s own spec_helper.rb?

Are you using any features from one mock framework that aren’t present
in the other? If not, potentially you could, with some regexp prowess,
rewrite all the mocks of one mocking framework to conform to the syntax
of another.

Scott