I'd like to DRY out my controller specs but am having difficulties doing so and 
am hopeful that a more experienced rspec expert can shed some much-needed light 
on my woes...

The controllers themselves are using josevalim's wonderful inherited_resources 
gem, so they are incredibly small - I'm basically looking for something like 
this on the rspec side...

I'm hoping to find a way to:

* Define a set of shared examples for each of the 7 common RESTful actions 
(index, show, new, edit, create, update, destroy)

* include those shared examples in a number of controllers (ApplesController, 
OrangesController)

* obviously have the shared examples know about the model names, something like:

    assig...@model_name.to_sym].should be_new_record  # e.g. GET xxx/new

* not so obviously have the description of the example reflect the model names:

    it "should delete the #...@model_name}" do

* be very DRY: Ideally, apples_controller_spec and oranges_controller_spec 
would be small: mostly about initialization of config (e.g. the model name) and 
include the various shared specs which tested the controller.

I've played around with a lot of approaches, but cannot figure out a clean 
pattern in which variables such as @model_name are scoped visible to the 'it' 
descriptions AND the example blocks.  I'm probably missing some wonderful clean 
ruby-way of doing this.

Thoughts/advice much appreciated!
-Eric


_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to