03. Escrevendo Asserções
Ao concluirmos todas as aulas deste tópico, nós:
- Saberemos como escrever asserções utilizando a API padrão do JUnit Jupiter 6 (
Assertions), Hamcrest (MatcherAssert) e AssertJ (Assertions.assertThat). - Compreenderemos por que bibliotecas fluentes como AssertJ oferecem melhor legibilidade e mensagens de falha mais ricas do que as asserções básicas do JUnit.
- Seremos capazes de transformar nossas asserções em uma linguagem específica de domínio (DSL) criando matchers customizados e asserções customizadas com AssertJ e
assertSoftly.
Conteúdo
-
Escrevendo Asserções Básicas com JUnit Jupiter
Aprenda a utilizar a API padrão de asserções do JUnit Jupiter (Assertions), mensagens lazy avaliadas sob demanda com lambdas em Kotlin e entenda suas limitações frente ao AssertJ.
-
Asserções Expressivas com Hamcrest e Kotlin Matchers
Aprenda a escrever asserções legíveis com Hamcrest (MatcherAssert.assertThat) no JUnit 6 e Kotlin, verificando booleanos, objetos, listas, mapas e combinando matchers com allOf e anyOf.
-
Criando Matchers Customizados Reutilizáveis no Hamcrest
Aprenda a criar matchers customizados no Hamcrest com FeatureMatcher e TypeSafeDiagnosingMatcher em Kotlin para remover regras de negócio repetitivas dos seus testes.
-
Escrevendo Asserções Fluentes com AssertJ 3.27
Aprenda a escrever asserções fluentes e expressivas em Kotlin com AssertJ 3.27 para booleanos, objetos, arrays, coleções e mapas.
-
Criando Soft Assertions com AssertJ (assertSoftly)
Aprenda a agrupar múltiplas asserções independentes em um único método de teste usando SoftAssertions e SoftAssertions.assertSoftly em Kotlin sem interromper a execução na primeira falha.
-
Criando Asserções Customizadas de Domínio com AssertJ
Aprenda a criar classes de asserção fluentes dedicadas para seus objetos de negócio estendendo AbstractAssert do AssertJ.
-
Escrevendo Asserções para Exceções
Aprenda a escrever asserções para exceções lançadas pelo Sistema Sob Teste comparando as abordagens históricas do JUnit 4 com assertThrows do JUnit Jupiter 6 e catchThrowable / assertThatThrownBy do AssertJ em Kotlin.