[rspec-users] shared examples sharing methods

Ben Mabey ben at benmabey.com
Thu Jun 18 01:14:25 EDT 2009


David Chelimsky wrote:
> On Wed, Jun 17, 2009 at 10:14 AM, Andrew Premdas<apremdas at gmail.com> wrote:
>   
>> Please have a look at
>> http://gist.github.com/131277
>> What I'd like to do is create a shared_examples group which I can parametize
>> a method. So my shared example would perhaps use method named_address=, or
>> set_named_address and then groups that behave like "Named address" would be
>> able to override this method so it sets the correct address e.g. the last
>> billing address
>>     
>
> Here's the short version: There's been a lot of discussion on this
> list about parameterizing shared examples. Basically, given the
> current design it can't happen, and macros are a perfectly good
> solution to the problem, so there's not much incentive to change the
> design.
>
> I'll try to follow up later with a recommendation about a macro,
> unless somebody else beats me to it :)
>   

I beat David to it. :)  Here are some options:

http://gist.github.com/131701

I think I like  #7 and #8 the best with the eval and #subject use.  With 
#8 I intentionally modify the backtrace so that the when errors happen 
it points to where the macro was called, not defined.  Sometimes this is 
desirable, YMMV.  FWIW, I question the value of such specs... but that 
is the macro approach.

-Ben



More information about the rspec-users mailing list