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

Scott Taylor mailing_lists at railsnewbie.com
Wed Nov 21 16:42:20 EST 2007


On Nov 21, 2007, at 3:17 PM, aslak hellesoy wrote:

> 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.

Yep, me too.

>
> 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.

Actually the error was rather clear - I just wasn't expecting it to  
happen over night (literally).  But then again, that's running on  
trunk for you!  (I'll make sure to check the CHANGELOG nextime).

On the same topic - has the following been deprecated?

it do
   ..
end

?  Wouldn't double example names creed up pretty quickly with this  
sort of syntax?



This actually helped me clear out a few duplicate examples that I had  
going on.

Thanks for the info,

Scott




More information about the rspec-users mailing list