[rspec-users] Getting Class in Shared Behaviours

Daniel N has.sox at gmail.com
Wed Nov 21 16:37:47 EST 2007


On Nov 22, 2007 8:31 AM, aslak hellesoy <aslak.hellesoy at gmail.com> wrote:

> On Nov 21, 2007 10:22 PM, David Chelimsky <dchelimsky at gmail.com> wrote:
> >
> > On Nov 21, 2007 3:14 PM, Daniel N <has.sox at gmail.com> wrote:
> > > Hi,
> > >
> > > I want to be able to get at the described class in my shared
> behaviour.  I'm
> > > sure an example will say it better than my words
> > >
> > > describe "my shared", :shared => true do
> > >
> > >   it "should tell me what the class is its describing" do
> > >     how_do_i_get_the_user_class_here
> > >  end
> > >
> > > end
> > >
> > > describe User do
> > >   it_should_behave_like "my shared"
> > >
> > >   #...
> > > end
> > >
> > > So in my shared behaviour, how do I get access to the User class?
> >
> > There's no way to do this implicitly. i.e. rspec does not expose the
> > class. You'd have to have a method like described_class or something:
> >
> > describe "my shared", :shared => true do
> >
> >   it "should tell me what the class is its describing" do
> >     described_class.should do_something_I_care_about
> >  end
> >
> > end
> >
> > describe User do
> >   def described_class
> >     User
> >   end
> >   ...
> > end
> >
> >
>
> However, if you do this:
>
> describe MyModule do # MyModule has a #hello method
>  it "should be polite" do
>    hello.should == 'How do you do'
>  end
> end
>
> Modules are automatically mixed into your examples
>
> Aslak
> >
> >
> >
> > >
> > > Cheers
> > > Daniel
> > > <http://rubyforge.org/mailman/listinfo/rspec-users>
>

Aslak

Thanx.  I was aware of that behaviour, but this module is being mixed into
AR classes and relies on there being methods available to AR models.  I
really want to implemnet these specs as a shared behaviour on each
implementing model.

That way I can check to make sure that the model has the correct attributes
for the mixin to function properly etc.

Thanx again.
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071122/b2b6fe11/attachment.html 


More information about the rspec-users mailing list