• Table of Contents
  • Introduction
  • Testing philosophy
  • Unit tests
  • Writing comprehensive tests
  • Mocking
  • Integration tests
  • Unit versus integration tests at Oppia
  • When to mock
  • Run backend tests
  • Identifying whether the tests passed
  • Coverage reports
  • Overall coverage
  • Warning: full coverage does not mean your tests are comprehensive
  • Associated test files
  • Per-file coverage
  • Write backend tests
  • Backend test structure
  • Guidelines for writing good tests
  • Common testing scenarios
  • Sharding backend tests
  • How sharding works
  • Common errors
  • Adding new tests to shards
  • Examples
  • Example: Writing unit tests for domain classes
  • Example: Writing integration tests for handlers (controllers)