Isole testes com um banco de dados de teste
Use um DB descartável a cada execução de testes.
Isole testes com um banco de dados de teste é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why Isolate the Database
Tests must never touch your real data. A test database keeps every run clean, so one test can never corrupt another or your production rows.
Use a Throwaway SQLite DB
The easy choice is an in-memory SQLite database. It lives only in RAM and vanishes the moment the test process ends.
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'Flip on Testing Config
Set TESTING to True before tests run. It turns off error catching so exceptions surface clearly in your output.
app.config['TESTING'] = TrueBuild a Fresh Schema
Inside an app context, call db.create_all(). It builds every table from your models so each test run starts from an empty schema.
with app.app_context():
db.create_all()Tear Down After Tests
After the test, call db.drop_all() to remove every table. This guarantees the next run cannot inherit leftover rows.
with app.app_context():
db.drop_all()Put It in a Fixture
Wrap setup and teardown in one fixture. The code before yield creates the schema; the code after it drops everything cleanly.
@pytest.fixture
def app_db():
db.create_all()
yield
db.drop_all()Seed Sample Data
Many tests need a known row to read. Add a record in the fixture, then commit it so the test starts from a predictable state.
db.session.add(User(name='Ada'))
db.session.commit()Why Fresh State Matters
Tests should pass in any order. Isolation means each test sees the same starting data, so results never depend on what ran before.
Roll Back Between Tests
An alternative to recreating tables is a rollback. Wrap each test in a transaction and undo it afterward for a fast, clean slate.
db.session.rollback()Keep Test Config Separate
Store test settings in a dedicated TestConfig class. Your factory loads it only during tests, never in development or production.
class TestConfig:
TESTING = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'Never Test Against Prod
Always double-check the URI points at a test database. Pointing tests at production data is the fastest way to lose real records.
Quick Check
You want tests that never harm real data. What database do you use?
Recap: Test Database
You spin up a clean test database, seed known data, and tear it down after. Now your tests are fast, repeatable, and safe. 🗄️
Perguntas Frequentes
A aula “Isole testes com um banco de dados de teste” é grátis?
Sim — o texto completo de “Isole testes com um banco de dados de teste” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “Isole testes com um banco de dados de teste”?
Use um DB descartável a cada execução de testes. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Isole testes com um banco de dados de teste”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O cliente de testes e os dispositivos de teste
- Verifique rotas e JSON
- Isole testes com um banco de dados de teste
- Teste endpoints autenticados