I know it is pretty fucking cliched; however, it is hard to go through a Ruby day without some surious testing. That's right, if you don't know what "TATFT" means than you haven't been doing craftsmen level software development for all that long. In this post we are going to take a newly formed [[Rails]] application and get it up to speed with some simple Cucumber style tests. In addition, this will be my first software based post, which is kind of exciting...I think.
The first thing that needs to be done is cracking open that Gemfile and let's add in these lines:
group :test dogem 'cucumber-rails', :require => falsegem 'capybara-webkit'gem 'database_cleaner'end
If you are one of those people who feel the need to place version numbers in your Gemfile, go ahead. As an aside, I recommend NOT doing this. Use your Gemfile.lock and your version control du jour to keep gem versions inline with your dev and production platforms.
The three gems you added into your Rails application are as follows:
- [[Cucumber-rails]] adds all the requires into your app where needed. A
rails g cucumber:installwill also need to be run after bundle installing the above gems.
- Database cleaner will cleanse your test environment after each test.
- Capybara-webkit is a handy gem for running
Once you finnish installing QT (Tested on 10.8.0 @2012.08.18 and working
great) you should head over to
/railsAppRoot/features/support/env.rb and add in this
And VOILA! You are ready to start testing! For a handy way to run commands/tests, using command line Vim and Tmux, read this post by someone way smarter than myself. Keep your eyes peeled for another post on Cucumber stories and how to write reusable yet sensible tests in your Rails app.