[rspec-users] alias method spec?
David Chelimsky
dchelimsky at gmail.com
Wed Mar 21 13:05:57 EDT 2007
On 3/21/07, Bob Cotton <bob.cotton at rallydev.com> wrote:
> "David Chelimsky" <dchelimsky at gmail.com> writes:
> > On 3/21/07, Bob Cotton <bob.cotton at rallydev.com> wrote:
> >>
> >> [ I'm still thinking in context/specify. ]
> >>
> >> David, your suggestion does answer Bryan's scenario,
> >>
> >> "you instead had two types of things (Foo and Bar) with one method
> >> that should behave the same for each"
> >>
> >> It is an interesting approach to testing a common behavior between two
> >> classes. But what about factoring the specify into a module:
> >>
> >> module Common
> >> specify "..."
> >> end
> >>
> >> then include that into the context?
> >
> > The problem there is that we'd have to add #specify to Module, which
> > I'm hesitant to do. How about this (using "it" and Examples instead of
> > "specify"):
> >
> > module EditionExamples < SharedExampleGroup
> > it "should " do
> > ..
> > end
> > end
> >
> > describe LargeEdition do
> > include EditionExamples
> > setup do
> > ...
> > end
> > end
> >
> > describe SmallEdition do
> > include EditionExamples
> > setup do
> > ...
> > end
> > end
> >
> > That make sense?
>
> Sure does, except, can you have modules subclass?
>
> > module EditionExamples < SharedExampleGroup
>
> Instead of factoring out the setup bits and having a common behavior,
> factor out the common behavior and have the #describe be
> the thing we are defining, which makes more sense. That fells right.
>
> I'd be all for adding specify/it to Module.
>
> *or*
>
> rspec, through #describe, is creating classes on the fly. Could you
> have something that defines common behavior that writes Modules on the
> fly?
>
> describe_common AllEditions do
> it "should" do
> end
> end
>
> describe "LargeEdition" do
> include AllEditions
> setup ...
> end
>
> describe "SmallEdition" do
> include AllEditions
> setup ...
> end
That's interesting too, though I'd hate to corrupt the beauty of
describe w/ _common. How about:
describe AllEditions, :shared => true do
it "should" do
end
end
etc..
>
> - Bob
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
More information about the rspec-users
mailing list