Assertions For Testable Code

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)
  • Assert something about the result of your logic
  • Don't assert anything about the result of another entity's logic

Rule 2

No Side Effects
  • Assertions shouldn't change the state of any variables outside the scope of the assertion

Rule 3

No Silly Assertions
  • Check for errors in your own logic
  • Don't check if the user did something wrong (in the assertion)
  • Don't check that any other entity is working correctly
From Udacity's Software Testing course notes.