Rspec_scaffold and mocha


#1

Hi all,

Sorry if this get’s posted several times but I got a message that my
previous post wasn’t allowed because I’m not a member. I think I am
now though.

The problem I have is fairly simple. I have some plugins who use rspec
and mocha and I want to make use of the rspec_scaffold generator.
Unfortunately this doesn’t work, the tests fail as soon as I set mocha
as my prefered mocking framework.

Is this by design or should it work out of the box.

If anybody knows about a generator that does work, please let me know

All the best!
Jeroen


#2

On Thu, May 7, 2009 at 1:21 PM, jevado removed_email_address@domain.invalid wrote:

As far as I can tell, Nifty_Generators nifty_scaffold (
http://github.com/ryanb/nifty-generators/tree/master) generates rspec +
mocha scaffolding. I wasn’t using Mocha so I didn’t look in detail.

e.g. here is a controller spec generated with nifty_scaffold for some
work I
was doing with the authlogic plugin:

describe UserSessionsController do
fixtures :all
integrate_views

it “new action should render new template” do
get :new
response.should render_template(:new)
end

it “create action should render new template when model is invalid” do
UserSession.any_instance.stubs(:valid?).returns(false)
post :create
response.should render_template(:new)
end

it “create action should redirect when model is valid” do
UserSession.any_instance.stubs(:valid?).returns(true)
post :create
response.should redirect_to(root_url)
end

it “destroy action should destroy model and redirect to index action”
do
user_session = UserSession.first
delete :destroy, :id => user_session
response.should redirect_to(root_url)
UserSession.exists?(user_session.id).should be_false
end
end


#3

Wow, thanks for all the replies …

The rspec scaffold generates more tests than the nifty_scaffold. I
didn’t look into it in detail yet cause some of the nifty tests where
failing too.

What I did to get it workin is map the missing methods (used by
respec) to methods in mocha. I also use the mislav-rspec-rails-mocha
plugin.

example:

module Mocha
class Expectation

def and_return(*values)
returns(*values)
end

end
end

On May 11, 3:17 am, Nicholas Van W. removed_email_address@domain.invalid


#4

post wasn’t finished yet …

I know that it’s not very clean but since it’s just for scaffolding
and I’ll probably rewrite most of the tests later on anyway it’s
acceptable for now.

Thanks again and I’ll monitor the GSOC project :slight_smile:

Kind regards,
Jeroen

On May 11, 3:17 am, Nicholas Van W. removed_email_address@domain.invalid