Fixtures and unit tests - no such file to load

Hello all,

I'm having some issues with my test fixtures and unit tests and am hoping somebody has an idea about how to fix it.

Background:

I have a table in my legacy database called tp_approval_step. For this table I have a fixture called tp_approval_step.yml I have a model called ApprovalProcessStep that uses set_table_name 'tp_approval_step' In my test file, ApprovalProcessStepTest, I have used set_fixture_class :tp_approval_step => ApprovalProcessStep

Now whenever I run rake test:units I get this error: Unable to load tp_approval_step, underlying cause no such file to load -- tp_approval_step

And not only do I get this for the example above, but I get it for every fixture in my rails app.

Any help would be greatly appreciated. I want to get on with testing my code!

I know it is not the answer you are looking for, so sorry in advance, but I think most nowadays would advise chucking fixtures in the bin and using Factories instead. Possibly Factory Girl or Machinist (I prefer Machinist). I have certainly not regretted it. The learning curve is only a few hours and you will get that back very soon.

Colin

Thanks for the ideas. I might have to go that route if I can't get this figured out. Either that or skip fixtures and have my test cases completely load the database from scratch.

Ideally I would like to stick with 'vanilla' rails as much as possible. I've found that the more libraries you layer on top of your app the harder it is for people to come along after you and maintain/ enhance it.

Mike

Mike B wrote in post #967999:

Thanks for the ideas. I might have to go that route if I can't get this figured out. Either that or skip fixtures and have my test cases completely load the database from scratch.

Ideally I would like to stick with 'vanilla' rails as much as possible. I've found that the more libraries you layer on top of your app the harder it is for people to come along after you and maintain/ enhance it.

That's not actually true in general, especially if you have decent test coverage. Personally, I'd rather maintain something with lots of (documented) libraries included than something with lots of reinvented wheels.

Anyway, Colin is absolutely right. There is no reason to use fixtures and every reason to get rid of them. The Rails core team made a mistake in designing fixtures, and so they should be completely avoided.

Mike

Best,

Ok, I have been convinced. I will switch over to using factories.

Is there anything on the horizon (Rails 3+) that will fix or replace fixtures in Rails?

I think most people use factory girl or machinist which are both available for Rails 3.

Colin