Thanks David, that looks like exactly what I was looking for - I'm
just sorry I didn't think of it myself!
Cheers,
Nick
On Sat, Mar 29, 2008 at 10:41 PM, David Chelimsky <[EMAIL PROTECTED]> wrote:
> On Sat, Mar 29, 2008 at 3:03 PM, Nick C
>
> <[EMAIL PROTECTED]> wrote:
>
> > Hmm, after investigating a little more, this doesn't sound feasible.
> > Instance variables are already shared between shared specs and their
> > callers, but I was thinking of the spec names themselves also being
> > parameterised, so that the following would be possible:
> >
> > it "should map { :controller => '<controller>', :action => 'new' } to
> > /admin/<path>/new" do
> > ...
> > end
> >
> > This would mean one of two things: class variables for <path> and
> > <controller>, which wouldn't work as these would be redefined by
> > successive specs as they get loaded; or some sort of templating or
> > preprocessing, which doesn't sound like a good idea at all.
>
> There is a strategy you can use for this. Define method in a helper
> and use the included hook to extend the example group. To see a
> working example of this, which actually may solve the exact problem
> you're trying to solve already, check out
> http://github.com/technoweenie/rspec_on_rails_on_crack.
>
> Cheers,
> David
>
>
>
> >
> > Ah well -
> >
> > Cheers,
> > Nick
> >
> >
> >
> > On Sat, Mar 29, 2008 at 6:36 PM, Nick C
> > <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > > I've come across a couple of cases recently in which I was wishing it
> > > was possible to parameterize shared specs. An example: I have defined
> > > a number of rails resources, and it seems wasteful to have tens of
> > > generated 'xxx_controller_spec' 'xxx_controller_routing' specs that
> > > check the same mechanisms, but with different parameters (in this
> > > case, the parameters would be the controller class name, and the path
> > > the route should map to for instance). It doesn't seem DRY, and it
> > > adds a cognitive overhead of dealing with a large number of very
> > > similar files in a project that essentially do the same thing.
> > >
> > > Ideally, I'd have wanted to do something like this:
> > > it_should_behave_like 'a standard rails routed resource', :controller
> > > => UserController, :path => 'users'
> > >
> > > I realise that the intention of the generated specs is to be evolved
> > > as the underlying controllers do; however, for the routing or some
> > > actions such as 'destroy', it's unlikely there will be much variation
> > > across controllers implementing the functionality, and it seems a
> > > shame to have dozens of generated specs that look copy-and-pasted.
> > >
> > > Any thoughts?
> > >
> > > Thanks,
> > > Nick
> > >
> > _______________________________________________
> > rspec-users mailing list
> > [email protected]
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users