[rspec-users] it_should_behave_like

David Chelimsky dchelimsky at gmail.com
Thu Jun 21 23:31:18 EDT 2007


On 6/21/07, Bob Cotton <bob.cotton at rallydev.com> wrote:
> "David Chelimsky" <dchelimsky at gmail.com> writes:
>
> > On 6/21/07, Jordan McKible <jmckible at gmail.com> wrote:
> >> Scott, putting aside semantics of the spec for a second, the code you posted
> >> generated the same error for me.  According to David, it would seem this is
> >> because fixtures aren't called in shared behaviors.
> >>
> >> So a shared context is really just an easy way of adding a bunch of specs to
> >> another context? Does it follow that shared contexts shouldn't use
> >> before/after methods either?
> >
> > before and after both work, and don't override the ones in the specs.
> > The before's in the shared behaviour happen before the before's in the
> > including behaviour, and vice versa for the afters.
>
> Actually the before's happen in the order they are encountered in the
> non-shared behavior. i.e. The order of before and
> is_should_behave_like are kept:
>
>
>
>
> describe "First", :shared => true do
>   before(:all) do
>     puts "First shared all"
>   end
>
>   it "should say 'What!?'" do
>     puts "What!?"
>   end
> end
>
> describe "Second", :shared => true do
>   before(:all) do
>     puts "Second shared all"
>   end
>
>   it "should say 'What!?' again" do
>     puts "What again"
>   end
> end
>
> describe "Non shared" do
>
>   it_should_behave_like "First"
>
>   before(:all) do
>     puts "first NON-shared all"
>   end
>
>   it_should_behave_like "Second"
>
>   before(:all) do
>     puts "second NON-shared all"
>   end
>
>   it "should print the them in order" do
>     puts "non-shared example"
>   end
> end
>
> > spec shared_behavior_example.rb
>
> First shared all
> first NON-shared all
> Second shared all
> second NON-shared all
> What!?
> .What again
> .non-shared example

That makes sense. Thanks for the clarification.

FYI - when this email came in my growl notifier read
"it_should_behave_like Bob Cotton." Hope you find that as amusing as I
did.

Cheers,
David

> .
>
>
> - Bob
>
> >
> >>
> >>
> >> On 6/21/07, David Chelimsky <dchelimsky at gmail.com> wrote:
> >> > On 6/21/07, Scott Taylor <mailing_lists at railsnewbie.com> wrote:
> >> > >
> >> > > What is the shared behavior between these two?  Do you want a valid,
> >> > > saved, and accepted contract to act like an unaccepted contract?
> >> > > Abstract out what is common between them, and then use that as the
> >> > > shared description.
> >> > >
> >> > > See:  http://pastie.caboo.se/72413
> >> >
> >> > FYI - fixtures in shared behaviours don't ever get called. Just
> >> > declare them in the behaviours that use them.
> >> >
> >> > >
> >> > > Best,
> >> > >
> >> > > Scott
> >> > >
> >> > >
> >> > > On Jun 21, 2007, at 10:24 AM, Jordan McKible wrote:
> >> > >
> >> > > > I'm trying to use it_should_behave_like, and something seems to be
> >> > > > wonky with the syntax.  When I add :shared=>true, the DSL complains
> >> > > > that the next line is the fixture declaration:
> >> > > >
> >> > > > /vendor/plugins/rspec/lib/spec
> >> > > > /dsl/behaviour_eval.rb:137:in `method_missing': undefined method
> >> > > > `fixtures' for #<Spec::DSL::EvalModule:0x324a2cc>
> >> (NoMethodError)
> >> > > >
> >> > > > Here's the spec http://pastie.caboo.se/72287
> >> > > >
> >> > > > Am I using it_should_behave_like properly?  Am I making a separate
> >> > > > mistake? I have RSpec setup as a svn external (currently rev2101).
> >> > > >
> >> > > > Thanks,
> >> > > > Jordan
> >> > > > http://jordan.mckible.com
> >> > > >
> >> > > > _______________________________________________
> >> > > > rspec-users mailing list
> >> > > > rspec-users at rubyforge.org
> >> > > > http://rubyforge.org/mailman/listinfo/rspec-users
> >> > >
> >> > > _______________________________________________
> >> > > rspec-users mailing list
> >> > > rspec-users at rubyforge.org
> >> > > http://rubyforge.org/mailman/listinfo/rspec-users
> >> > >
> >> > _______________________________________________
> >> > rspec-users mailing list
> >> > rspec-users at rubyforge.org
> >> > http://rubyforge.org/mailman/listinfo/rspec-users
> >> >
> >>
> >>
> >> _______________________________________________
> >> rspec-users mailing list
> >> rspec-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/rspec-users
> >>
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list