[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