Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test Driven Development (TDD) with Rails

I am looking for TDD resources that are specific to Rails.

I've seen the Rails Guide: The Basics of Creating a Rails Plugin which really spurred my interest in the topic.

I have the Agile Development with Rails book and I see there's some testing-related information there. However, it seems like the author takes you through the steps of building the app, then adds testing afterward. This isn't really Test Driven Development.

Ideally, I'd like a book on this, but a collection of other tutorials or articles would be great if such a book doesn't exist.

Things I'd like to learn:

  • Primary goal: Best Practices
  • Unit testing
  • How to utilize Fixtures
    • Possibly using existing development data in place of fixtures
      • What's the community standard here?
  • Writing tests for plugins
  • Testing with session data
    • User is logged in
    • User can access URL /foo/bar
  • Testing changes in data
    • Author updates post
    • Product status changes to back order
    • User buys product (behavior?)
      • User is logged in
      • User has valid address and valid credit card
      • Order record is made
      • Credit Card transaction history updated
      • Send email to user
  • Testing success of sending email
  • Testing AJAX
    • Possibly testing general jQuery functionality (Interface elements, etc)
  • RSpec
    • What place does RSpec have in a Rails app
  • The future of testing
    • Where is testing going? What things are on their way out?
    • What patterns will be used in Rails 3?

Thanks for any help!

like image 662
maček Avatar asked Oct 14 '22 06:10

maček


2 Answers

The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends. Focuses on BDD rather than TDD, but that's the whole point of RSpec and Cucumber. Not entirely specific to Rails, but has several chapters dedicated to it. Well written and up to date (though still in beta).

like image 147
zetetic Avatar answered Oct 19 '22 02:10

zetetic


Many of the points you mention are discussed in different episodes of Railscasts by Ryan Bates, including:

http://railscasts.com/episodes/275-how-i-test

http://railscasts.com/episodes/158-factories-not-fixtures-revised

http://railscasts.com/episodes?utf8=%E2%9C%93&search=cucumber

like image 36
Gabriel Ščerbák Avatar answered Oct 19 '22 03:10

Gabriel Ščerbák