What should and should not be tested in unit tests?

What should and should not be tested in unit tests?

I have written about F.I.R.S.T principles of testing and TDD as a school of thought

Probably an extreme opinion, but this is how Jeff Atwood puts it

I Pity The Fool Who Doesn’t Write Unit Tests

But what should you test?

This I generally try to follow

This will not only help you deliver and release faster, but will also make you more confident about your own codebase.

Writing tests and having 100% code coverage does not necessarily mean that your code is bug free, but I feel it’s certainly better than having no tests at all.

What should you not test?

References