The Three Laws of Test Driven Development
1. You may not write production code until you have written a failing test.
2. You may not write more of a unit test than is sufficient to fail.
3. You may not write more production code than is sifficient to pass the currently failing test.