- it talks to the database
- it communicates across the network
- it touches the file system
- it can’t run at the same time as any of your other unit tests
- you have to do special things to your environment (such as editing config files) to run it Tests that do these things aren’t bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to keep them separate from true unit tests so that we can run the unit tests quickly whenever we make changes.
-- by Michael Feathers