- Test method names should be sentences (This_method_does_this(){})
 - Test the happy path – the most common/important functionality (acceptance criteria should be executable)
 - Test at the highest level that is practical
 - Unit Tests should not:
 - Talk to the database
 - Talk to the network
 - Touch the file system
 - Don’t change business logic to write the code
 - Depend on any other tests (can be run at any time, in any order)
 - Depend on environment variables (USE MOCKS!)
 - Tests should be fast (lengthy tests are doing something wrong)
 - Less than 10 lines of code
 - Only one or two logical asserts per test
 - Don’t write tests after development is done
 
Further reading:
- Introducing BDD
 - A Set of Unit Testing Rules