We use Test-Driven Development, or TDD in this project. To correctly do TDD, you will:
- Write one, and only one test that will pass when the code adds your functionality. That test should fail when first written
- Write just enough code to make that test pass
- Refactor the code to improve the design, while ensure all tests still pass