I'm trying out the whole TDD on my newest project, and here's my dilemma:
I am creating a login system
Break this feature up into tasks, each representing one user interaction. Example:
- logout - login bad user name - log in bad password - log in first time
For each one, write enough Railage to enable only that interaction. Each one may require tweaks to a database, model, controller, and/or view.
Write test cases before as many tweaks as possible. Pass all tests after every few edits. If you can't think of a test (look up assert_select and submit_form to test the view), then at least add a test after you write the code
(I know, I know... re-inventing the wheel,
Hardly. Many erudite, educated, senior, overpaid, world-class programmers still don't TDD, and anyone who does will easily blow them away...