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

Scott Taylor mailing_lists at railsnewbie.com
Sat Sep 8 17:04:47 EDT 2007


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

Scott





More information about the rspec-users mailing list