I Admit It, I Love TDD
This week @PDXcodeschool we jumped into TDD using minitest/autorun. I have used RSpec in the past, and loved the way it let me manage the logic of my project. I love that ruby has a built in framework — so easy to use!
- Use specs to rough out project logic
describe "Car" do it 'should have a color' it 'should have a make' it 'should have a unique serial number' it 'should get a new serial number when it gets stolen' it 'should accept passengers' it 'should not accept more than 3 passengers' end
All of these tests will be skipped until they are followed by a do…end block.
- Take one test at a time and write the code to make it pass
describe "Car" do it 'should have a color' do car = Car.new("black") car.color.must_equal "black" end ... end
If your tests exercise the project well enough, you end up with really tight code. More of a lasagna noodle than spaghetti!