Selenium - tips for avoiding a hundred fixture files.

Max Williams wrote: > I've just started using Selenium with Rspec and it's working well so > far. However, i'm testing it against my local development version of > the site (ie running in mongrel). What i really need to do is run it in > a test environment, so i can do destructive actions repeatedly.

Investigate Webrat (and ots Selenium bindings if you need them). Cucumber may also be nice here.

> Using fixtures seems like one obvious way to go

The obvious is not always the best. :slight_smile:

[...]

> a) Generate fixtures, or some data (maybe even just an sql file) that > is loaded into the db before every test. This is going to be very slow > as the data will be reloaded *a lot*.

Remember, Rspec already clears the test database before each test.

What you have here is a good use case for factories, I think. Install Machinist or Factory Girl and just tell it what you need for each particular test. It will take care of the dependencies. [...]

> 2) Generate a lot of fixtures somehow using some kind of system that > basically makes it easier to have a lot of associated models.

This is sort of what factories do. There's a Railscast on the subject.

Check out this Railscast that uses two gems populator and faker to create a rake that loads a database with fake data:

That looks really useful as well, thanks WJ!

cheers max