Mocks, Fakes e Cobertura
Isole unidades e meça o que testa.
Mocks, Fakes e Cobertura é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 4 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 Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.
Isole a unidade
Um teste unitário deve verificar uma única parte de forma isolada. Bancos de dados ou redes reais tornam os testes lentos e instáveis, por isso nós os substituímos. 🔌
Substitutos de teste
Um substituto de teste ocupa o lugar de uma dependência real. Mocks, fakes e stubs são os tipos mais comuns que você pode usar.
O que é um fake
Um fake tem uma implementação funcional, porém simplificada, como uma lista na memória ocupando o lugar de um banco de dados real.
class FakeRepo implements Repo {
final _items = <Item>[];
}O que é um mock
Um mock registra como foi chamado, para que você possa verificar as interações, não apenas os valores finais.
O pacote mockito
O pacote mockito gera mocks para você. Anote o tipo desejado e execute build_runner para criá-lo.
@GenerateMocks([Repo])
import 'repo_test.mocks.dart';Criar stubs com when
Use when para programar um mock: quando este método for chamado, retorne este valor. Assim, o comportamento fica previsível.
when(repo.find(1))
.thenReturn(Item('a'));Verificar chamadas
Use verify para verificar se um método foi chamado e quantas vezes, comprovando que seu código se comunicou corretamente com a dependência.
verify(repo.save(any)).called(1);Criar stubs assíncronos
Para métodos que retornam um Future, programe-os com thenAnswer, para que o mock possa retornar um resultado assíncrono.
when(api.load())
.thenAnswer((_) async => 'ok');Mock ou fake
Use um fake quando precisar de um comportamento realista e um mock quando o importante for saber quais chamadas aconteceram.
O que significa cobertura
Cobertura mede quais linhas são realmente executadas pelos seus testes. Uma cobertura alta sugere abrangência, mas nunca garante a correção.
Gerar cobertura
Execute os testes coletando a coverage e depois transforme os dados em um relatório que você possa ler ou enviar para uma ferramenta.
dart test --coverage=coverageVerificação rápida
Qual substituto registra chamadas para que você possa verificá-las?
Recapitulação
Você isolou unidades com fakes e mocks, criou stubs com when, verificou chamadas e mediu a cobertura. Testes rápidos, focados e confiáveis. 🎯
Perguntas Frequentes
A aula “Mocks, Fakes e Cobertura” é grátis?
Sim — o texto completo de “Mocks, Fakes e Cobertura” é 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 Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.
O que vou aprender em “Mocks, Fakes e Cobertura”?
Isole unidades e meça o que testa. Você pratica Dart 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 Dart Academy?
Nenhuma experiência prévia é necessária. Dart 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 4 de 4.
Quanto tempo leva a aula “Mocks, Fakes e Cobertura”?
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 Dart Academy?
Sim. Cada aula de Dart 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
- Seu Primeiro test e expect
- group, setUp e tearDown
- Testando Código assíncrono e Streams
- Mocks, Fakes e Cobertura