0Pricing
Dart Academy · Aula

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=coverage

Verificaçã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

  1. Seu Primeiro test e expect
  2. group, setUp e tearDown
  3. Testando Código assíncrono e Streams
  4. Mocks, Fakes e Cobertura
← Voltar para Dart Academy