The Ultimate Guide to unit testing in JavaScript!

A Unit test should test the behavior of a unit of work.

Unit tests are isolated and independent of each other.

  • Fast
  • Consistent
  • Easy to write and read
  • Any given behavior should be specified in one and only one test
  • The execution/order of execution of one test cannot affect the others

Ultimate Guidelines Which Helped Me a Lot.

  • Whenever possible, use TDD
  • Structure your tests properly
  • Name your tests properly
  • Don’t comment out tests
  • Avoid logic in your tests
  • Don’t write unnecessary expectations
  • Know your testing framework API
  • Consider using factory functions in the tests
  • Don’t test multiple concerns in the same test
  • Cover the general case and the edge cases
  • Test the behavior, not the internal implementation
  • Don’t mock everything
  • Create new tests for every defect
  • Test simple actions
  • Review test code first
  • When applying TDD, always start by writing the simplest failing test
  • When applying TDD, always make small steps in each test-first cycle
  • Properly set up the actions that apply to all the tests involved