Implementação de Database
Nesta seção será implementado o conceito de Database, responsável por preparar o estado persistente da aplicação como pré-condição necessária para a execução do cenário de login com sucesso no Probato. No Probato, Database é utilizado para definir estado, não para executar lógica de teste. Scripts SQL ou NoSQL são declarados de forma explícita e executados automaticamente antes dos cenários.
Configuração de datasource
A configuração de conexão com o banco de dados deve ser definida no arquivo configuration.yml
datasources:
probato:
url: jdbc:h2:mem:testdb
driver: org.h2.Driver
username: sa
password: password
Criando os arquivos SQL
- No diretório
src/test/resources/sql, crie a pastainit. - No diretório
src/test/resources/sql, crie a pastauser. - Dentro de
src/test/resources/sql/init, crie o arquivoinit.sql. - Dentro de
src/test/resources/sql/user, crie o arquivoinsert-user.sql.
Script de inicialização global
O script init.sql será utilizado para preparar o estado global da funcionalidade, sendo executado antes de todos os Scripts da Suite.
| init.sql | |
|---|---|
Script de dados do cenário
O script insert-user.sql será utilizado para preparar o estado específico do cenário, inserindo os usuários necessários para o teste de login.
Atualizando a classe Script
O Script pode declarar estado específico do cenário por meio da anotação @SQL.
Nesse ponto:
- O Script declara qual estado específico necessita
- O Database é preparado automaticamente antes da execução
- A Procedure permanece focada apenas na lógica
Atualizando a classe Suite
A Suite pode declarar estado global da funcionalidade, aplicado antes de todos os Scripts.
Dessa forma:
- O estado global é preparado uma única vez
- Cada Script aplica apenas seu estado específico
- Não há acoplamento entre estado e lógica de teste
Checklist final
Antes de prosseguir, verifique se:
- ✅ Os arquivos SQL foram criados corretamente.
- ✅ O datasource
probatoestá configurado noconfiguration.yml. - ✅ Os scripts SQL são executados antes dos testes.
- ✅ O cenário é executado com estado previsível e controlado.
Com a implementação de Database concluída, a automação passa a ser reprodutível, previsível e confiável.