Help with Unit test

Hi, I have to test one of my models, but it uses a seed database.

How do I delete everything on my database and create it again from seed
(default code for some examples) for every one of my unit tests?

Right now, when I run rake db:test:units (and if I put something on my
code
like User.all.count) it says that there 2 users at the database (but
with
nil paramters except id). If I do a setup code to create the new
instances
at the database (as I want), it creates them, but there are still those
2
trash users there which makes my model not to work.

Thanks in advance

On Tue, Jan 17, 2012 at 4:04 PM, Rodrigo R.
[email protected]wrote:

Thanks in advance

It is probably not the “optimal” way, but a “practical” way might be to
do
this:

WARNING: this will delete all data in development and test database !!

For the development database

rake db:drop
rake db:create
rake db:migrate
rake db:seed

For the test database

RAILS_ENV=test rake db:drop
RAILS_ENV=test rake db:create
RAILS_ENV=test rake db:migrate
RAILS_ENV=test rake db:seed

guard # Spork for RSpec

This works well as a set-up for rspec (and with static
seeded data, e.g. list of countries etc. available also
for the tests).

Maybe not optimal, but works well.

Alternatively, if you do not want to restart from scratch, just deleting
all
users could be done with

rails console

User.delete_all

RAILS_ENV=test rails console

User.delete_all

Peter

On 17 January 2012 15:04, Rodrigo R. [email protected] wrote:

Hi, I have to test one of my models, but it uses a seed database.

How do I delete everything on my database and create it again from seed
(default code for some examples) for every one of my unit tests?

I think most nowadays think that factories are the best way of
testing, using something like factory_girl. I think the
free-to-use-online tutorial railstutorial.org uses factories for
testing. That is a good tutorial anyway and well worth working
through.

If you don’t want to use factories you should use fixtures for
populating the test database. I think the Rails Guide on testing
covers this. Then rails will automatically reset the test database
for each test. I would expect any good tutorial on rails to either
use factories or fixtures.

Colin

Thank you, I manage to do what I wanted with fixture.

Going to trying factory too as soon as I can.

Thanks for the help