[rspec-users] get to a different controller

Phillip Koebbe phillipkoebbe at gmail.com
Wed Jan 6 21:53:15 EST 2010

Wincent Colaiuta wrote:
> Well, there is more than one way to skin a cat, but the thing I like 
> about my proposed solution is that:
> - the specification of the behavior appears in the "describe" block 
> that corresponds to the controller where the behavior is implemented
> - but given that the implementing controller is an abstract one, you 
> actually test the behavior where it is actually exercised (ie. in the 
> subclasses)
> - you don't need to make a fictional controller which isn't actually 
> part of your application purely for testing purposes
> Looking at the gist you pasted it looks like it could be very 
> straightforward to test, especially if you're using a RESTful access 
> pattern.
> Your admin controllers all inherit from your abstract base class, and 
> if they're RESTful you know before you even start which actions 
> they'll respond to (the usual index, new, create etc). Perhaps they 
> only respond to a subset; but even if they only respond to one ("show" 
> or "index", say) you have enough of a common basis to test that the 
> require_admin before filter is actually hit and does what you think it 
> should (ie. you only need to hit "show" or "index", there is no need 
> to test all actions).
> Cheers,
> Wincent

Are you basically saying that you wouldn't worry about testing the 
before_filter in the base_controller at all? Maybe part of the reason I 
am not "getting this" is my lack of familiarity with shared behaviors. 
If I share the behavior in the base_controller_spec, will it get tested 
when I run that spec? If it won't, then my concern is moot. If it will, 
then I'm just as confused as I was before.


More information about the rspec-users mailing list