[rspec-users] 'it' duplicate example: BUG

aslak hellesoy aslak.hellesoy at gmail.com
Wed Nov 21 15:17:22 EST 2007


On 11/21/07, Chad Humphries <chad at spicycode.com> wrote:
> One of the recent trunk changesets modified the default behaviour to
> fail fast if duplicate examples are detected within a single behaviour/
> example group.   This is basically letting you know you have to "it"
> blocks in the behaviour with the same description.
>

This is correct. It's not a bug - it's by design and documented in CHANGES.

The reason I put it in has an interesting explanation. Over the past
few days our coverage dropped from 100% to 99.9% and we couldn't
understand why. RCov reported that some code wasn't being covered, but
I *knew* there were examples covering it.

Something was fishy.

Then I remembered that Brian a few days ago did a change to the
internals - every it block now creates a method with the same name as
the description, and later calls that method to run the example.
Nothing wrong with that, but it had some sideeffects we didn't think
about: If there were duplicates, the last one would simply overwrite
(monkey patch!) the previous one with the same name. And as a result
never get run.

Since I'm a fail fast kind of guy I made RSpec do that.

And then I had to go and fix a dozen or so duplicates in our own code.
Damn CMD-C/CMD-V keys.

I realise the error message you're getting now isn't exactly easy to
grok, but as always - we're glad to take patches to make it speak
nicer to you.

Cheers,
Aslak

> Note:  You may have this issue rise up if you have one in a shared
> behaviour and accidental duplication in the file (that was my case
> when I updated this morning).
>
> - Chad
>
> On Nov 21, 2007, at 1:12 PM, Scott Taylor wrote:
>
> > I svn up'ed this morning, to get the following message with rake spec:
> >
> > /Users/smt/src/web/urbis/trunk/vendor/plugins/rspec/lib/spec/example/
> > example_group_methods.rb:96:in `it': Duplicate example: 'should
> > contain the total number of messages' (RuntimeError)
> >
> > Anyone have any ideas why this might be going on?  My specs were all
> > passing last night.
> >
> > Let me know if I should put this in the tracker.
> >
> > Scott
> > _______________________________________________
> > 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