If it can break, it should be tested. This includes models, views, forms, templates,
validators, and so forthEach test should generally only test one functionKeep it simple. You do not want to have to write tests on top of other testsRun tests whenever code is PULLed or PUSHed from the repo and in the staging environment before
PUSHing to production
When upgrading to a newer version of library or web framework