El 26/07/2010, a las 09:31, Ashley Moran escribió: > I'm back again, and still on a quest to tame shared example to do my bidding. > This time what I'm wondering is... is there any way to format shared example > specdoc description output with data passed in with #let, or otherwise? eg: > How do I get "1" and "2" into either of the placeholders <i> here? > > shared_examples_for "Comparable" do > describe "comparing <i>" do > it "defines equality for <i>" do > object.should eq object > end > end > end > > describe Integer do > it_should_behave_like "Comparable" do > let(:object) { 1 } > end > it_should_behave_like "Comparable" do > let(:object) { 2 } > end > end > > (If I had to duplicate the 1 and 2 that wouldn't be the end of the world, as > long as the syntax for including the shared examples was simple enough.)
Seems to me that including the same shared example group twice in the same "describe" block is a bit of an abuse, to be honest. I don't think it was ever really intended to be used in that way. Your shared_examples_for should be written in such a way that they don't need to reference "<i>"; ie: shared_examples_for "Comparable" do it 'defines equality' do subject.should eq(subject) end end And then you use it like this: describe Integer do [1, 2].each do |i| describe i do it_should_behave_like 'Comparable' end end end Obviously this is a toy example that you've given us, and I don't see why you'd want to test 1 and 2 like that, but for the purposes of illustration... The specdoc output for that would look like: Integer 1 it should behave like Comparable defines equality 2 it should behave like Comparable defines equality I know you probably have some real example in mind hiding behind that toy example, but I believe anything you want to test can be written in the same way (ie. without needing to inject the "<i>" into your shared examples). Cheers, Wincent _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users