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