What is an assertion?

An assertion is an executable check for a property that must be true of the code.

Rule 1

Assertions Aren't For Error Handling (that's what exceptions are for)

Rule 2

No Side Effects

Rule 3

No Silly Assertions
From Udacity's Software Testing course notes.