02. Criando Dados de Teste
Ao concluirmos todas as aulas deste tópico, nós:
- Conheceremos os prós e contras da instanciação direta via construtores (incluindo argumentos nomeados e
data classdo Kotlin), factory methods, Object Mother e Test Data Builders. - Seremos capazes de criar objetos de dados de teste usando construtores com valores padrão, funções factory locais, objetos
Mothere Test Data Builders fluentes. - Seremos capazes de escolher a ferramenta ideal para cada cenário de teste.
Conteúdo
-
Introdução ao Sistema Sob Teste (SUT)
Compreenda o conceito fundamental de Sistema Sob Teste (SUT), a distinção entre entrada, saída e estado, e como modelá-lo com clareza em Kotlin.
-
Criando Dados de Teste: Construtor Telescópico vs Argumentos Nomeados
Veja como o antipadrão clássico do construtor telescópico em Java é superado de forma elegante e segura com argumentos nomeados e valores padrão em Kotlin.
-
Construção JavaBeans vs Imutabilidade com Data Classes
Compare o padrão JavaBeans baseado em mutabilidade e setters com o design moderno de Data Classes imutáveis e funções de escopo como apply() em Kotlin.
-
Introdução aos Factory Methods para Testes
Aprenda o conceito de Factory Methods (Métodos Fábrica) na criação de dados de teste expressivos e como eles tornam a intenção do cenário imediatamente visível.
-
Criando Dados de Teste com Factory Methods: Usando Funções Locais
Aprenda na prática os prós e contras de criar objetos MailingAddress e Task usando funções fábrica locais em nossas classes de teste com Kotlin.
-
Padrão Object Mother em Kotlin
Aprenda a centralizar dados de teste reutilizáveis em classes Object Mother usando a palavra-chave object e funções de extensão em Kotlin.
-
Criando Nosso Primeiro Test Data Builder
Aprenda a construir um Test Data Builder fluente e seguro para cenários complexos onde flexibilidade e valores padrão coexistem.
-
Criando Objetos com Estado Consistente em Builders
Descubra como projetar Test Data Builders que protegem as regras de invariância do domínio, evitando que os testes criem objetos com estado inconsistente ou inválido.
-
Sobrescrevendo um Builder de Produção com um Test Data Builder
Descubra por que os objetivos de um Builder de produção frequentemente entram em conflito com os testes, e aprenda a sobrescrevê-lo com um Test Data Builder sem poluir o código de produção.
-
Enfatizando o Estado Relevante do Objeto Criado
Aprenda a eliminar o ruído visual dos seus testes combinando valores padrão inteligentes ('insane defaults') em Test Data Builders com métodos fábrica expressivos.