[rspec-users] fixtures in before(:all)

Scott Taylor mailing_lists at railsnewbie.com
Sat Sep 8 18:37:18 EDT 2007


On Sep 8, 2007, at 5:47 PM, aslak hellesoy wrote:

> On 9/8/07, Scott Taylor <mailing_lists at railsnewbie.com> wrote:
>>
>> On Sep 7, 2007, at 3:31 PM, Geoffrey Wiseman wrote:
>>
>>> I was planning on using a fixture within a description that didn't
>>> modify the fixture, so I put it in a before(:all) block:
>>> describe "Customer", "xml" do
>>>   fixtures :customers
>>>
>>>   before(:all) do
>>>     one = customers(:one)
>>>   end
>>>
>>>   # ...
>>> As a result, I got this message:
>>>
>>> 1)
>>> NoMethodError in 'Customer xml before(:all)'
>>> You have a nil object when you didn't expect it!
>>> You might have expected an instance of Array.
>>> The error occurred while evaluating nil.[]
>>> ./spec/models/customer_spec.rb:86:
>>> script/spec:4:
>>> If I convert it to before(:each) or simply before, it works just  
>>> fine.
>>> describe "Customer", "xml" do
>>>   fixtures :customers
>>>
>>>   before do
>>>     one = customers(:one)
>>>   end
>>>
>>>   # ...
>>> By design?  bug?  PEBKAC?  Anyone else hit this?
>>>
>>
>> Looks like a bug to me, although I don't know why you would want to
>> load a fixture only once, and not before every test.  Generally, I
>> don't find much use for a before(:all) block (they are discouraged in
>> Test::Unit as well, for their unreliable use with more than one  
>> test).
>>
>
> Like I said - it's by design.
>
> It's been discussed in previous mail threads.
>
> Aslak

Sorry, didn't see your post on the thread.

Scott



More information about the rspec-users mailing list