I saw many questions asking 'how' to unit test in a specific language, but no question asking 'what', 'why', and 'when'.
- What is it?
- What does it do for me?
- Why should I use it?
- When should I use it (also when not)?
- What are some common pitfalls and misconceptions