What is the correct behaviour when manually specifying which fixtures to load?

I have a problem with fixtures not being removed between tests and would like to know if this is expected behavior or not.

For example, say that I have a model Car, and a car.yml fixtures file. I have two test cases CarTest and DealerTest. In the first test,

I want to use fixtures, so I define it like this:

class CarTest< ActiveSupport::TestCase

fixtures :cars

test “Car fixtures should have been loaded” do

assert_equal NUMBER_OF_FIXTURES, Car.count

end

end

In my second test case, DealerTest, I do not want to use the car fixtures, but want to create some of my own.

class DealerTest< ActiveSupport::TestCase

test “No Cars should be in the database” do

assert_equal 0, Car.count

end

end

Now, if I run this test individually, it works fine. But if I run it using rake test:units, it fails. The car fixtures are left over from the previous test.

Is this how it is supposed to work?

I think you are misinterpreting the symptom. I *think* it is not that the fixtures are left over from the previous test, but that when using rake test it forces all fixtures to be reloaded for each test. If I am right then the question is "how to stop rake test from loading fixtures". I do not know the answer however. I stopped using fixtures some time ago, I think the consensus is that fixtures are a Bad Thing and that factories are the way to go. I tend to agree.

Colin