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.
[...]
> 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: