Rullst AcademyRullst Academy/Lição
Aplicações com Rullst I · Lição 12 / 14

Testes que investigam o contrato

Ver uma página abrir é só o começo da verificação.

Trilhas de aprendizado20 min

Vamos descobrir juntos

  1. 1

    src/validation.rs testa uma função sem rede nem banco. tests/contract.rs usa TestApp do Rullst para enviar pedidos ao roteador e verificar status e dados. O teste de persistência fecha conexões e abre arquivos novos. Cada tipo responde a perguntas diferentes.

  2. 2

    Execute cargo test --locked. Observe os nomes, não só o total verde. A prova de rejeição exige status correto e banco sem alteração. A prova de texto parametrizado inclui dado incomum e tabela ainda funcional. Evite testes que apenas repitam uma constante da implementação.

  3. 3

    Escolha um erro plausível: trocar WHERE id por um UPDATE sem filtro em uma cópia descartável. Um teste com duas missões deve detectar que a outra não poderia mudar. Depois reverta a alteração e mantenha o teste. Não faça esse experimento no banco de alguém.

  4. 4

    O projeto final pede um caso novo, escrito por você, e uma explicação do que ele não cobre. TestApp não testa um navegador real, instalação limpa, carga ou leitores de tela. Uma revisão útil combina testes adequados com observação e feedback de outra pessoa.

Sua bancada de aplicações

O kit inclui o aplicativo completo para investigar e modificar. O trecho abaixo explica esta etapa; o editor contém o arquivo indicado. A Rullst Academy não compila nem executa esse servidor no navegador.

Arquivo para estudar e modificar

tests/contract.rs

cargo test --locked
cargo test --locked title_and_priority_boundaries
cargo test --locked http_contract_validation_and_parameterized_data

Extraia o kit numa pasta nova e abra o terminal junto a Cargo.toml. Use Rust 1.96+; o primeiro build pode baixar dependências e demorar. Depois abra http://127.0.0.1:3010. Pare com Ctrl+C e execute novamente após editar.

cargo test --locked
cargo run --locked
Meus arquivos e GitHub

Baixe seu rascunho e substitua o arquivo indicado na sua cópia extraída. O editor guarda um arquivo neste navegador; a conta guarda avaliações e XP. O ZIP não contém suas alterações. GitHub envia só o arquivo confirmado; para o aplicativo completo use Git manual, sem bancos, backups ou segredos.

Links oficiais e próximo passo

✦
SUA MISSÃO

Distinguir teste de função, de HTTP e de recuperação; acrescentar uma regressão útil.

Agora é a sua vez

Oficina de descobertas

Decida antes de executar

Distinguir teste de função, de HTTP e de recuperação; acrescentar uma regressão útil.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

O que um conjunto de testes aprovado permite afirmar?

Preciso de uma pista

Evidência tem limites. Um caso novo e feedback independente ajudam a descobrir o que o conjunto anterior não cobria.

Carregando sua jornada…

Leve com você

Adicione um teste que conclui uma missão e verifica que outra continua pendente. Faça-o falhar com um defeito deliberado na cópia, corrija e registre antes/depois.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.