# Testing

A Jadpo test runs your real application against a real database. Only
the outside world and the clock are replaced: every call to an outside
service answers from a fake, and the clock stands still until the test
moves it. You don't mock your own actions, and there is no in-memory
stand-in for the database.

This page covers where tests live, the kinds of test, the settings a test
takes, acting as a user, controlling time, configuration and fakes in
tests, shared test data, assertions, running tests, the test database,
and how tests meet caches and events.

Most examples use a todo app's `planning` domain, the folder that holds
one business area of the app. It has `User` and `Todo` entities (kinds of
stored record), a `create_todo` action, a `TodoNotFound` failure, an
`overdue_reminders` schedule and a `ReminderMail` integration with an
outside email service.
