Stubbing helper methods in controller specs when integrate_views is On

Hi all,

I’m using rspec-caching-test-plugin to test caching (obviously) in my
controller specs. Because views are also involved in caching
integrate_views
have to be turned On.
The problem comes when mock is passed to a helper, for examle

link_to_profile(profile)

where porfile = mock_model(Profile)

The error thrown is “can’t convert Spec::Mocks::Mock into String”.
Usually
when dealing with view specs in this case I’m just doing

template.stub!(:link_to_profile => ‘/link/to/profile’)

and specing the helper method in separate helper spec, but in this case
(controller spec with integrate_views turned On) I have no access to
template object.

Is there any way to stub helper method or I just have to give away mocks
and
use real records created with FactoryGirl instead?

Regards,
K.

On 25 Nov 2009, at 16:02, Krasimir Angelov wrote:

mocks and use real records created with FactoryGirl instead?
You have a couple of options, I think:

(1) Try mocking enough of the object’s interface that the Rails helper
will happily build a link to it. I think that just means stubbing a
#to_param method on it.
(2) Use rspec-rails’ mock_model method to build the mock object, which
will basically do that for you.
(3) Use rspec-rails’ stub_model method to build the mock object, which
creates a real model object instance (like FactoryGirl would) except
with the database connection crippled.

Okay that was three options.

cheers,
Matt

+447974 430184