ruby - Rewrite shared example groups in rspec2 -


in rspec 1

describe "something", :shared => true  include somemodule # has :a_method method   def a_method(options)    super(options.merge(:option => @attr)  end   "foofoofoo"  end end  describe "something else"   before(:each)     @attr = :s_else   end    it_should_behave_like "something"    "barbarbar"     a_method(:name => "something else")     something.find("something else").name.should == "something else"   end ... end 

that is, use :shared => true not refactor examples share method definitions , attributes. realize example contrived, how 1 write in rspec >= 2 without touching somemodule module or something class?

you can shared_examples_for

shared_examples_for "something"   include somemodule # has :a_method method    def a_method(options)     super(options.merge(:option => @attr))   end    "foofoofoo"   end end 

and call it_behaves_like:

it_behaves_like "something" 

edit

joao correctly points out fails include somemodule examples in describe block. include have take place outside shared example group, e.g. @ top of spec file

include somemodule # has :a_method method  # ...  shared_examples_for "something"   def a_method(options)     super(options.merge(:option => @attr))   end    "foofoofoo"   end end 

david chelimsky discusses new features of shared examples in rspec 2 may pertinent in this blog post.


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -