09. Aulas Bônus 2020: Arquitetura, Multi-Módulo e PostgreSQL Avançado

Este tópico reúne as aulas bônus de arquitetura avançada para aplicações Spring Boot com Kotlin e PostgreSQL. Ao concluirmos todas as aulas deste tópico, nós:

  • Compreenderemos os prós e contras de aumentar o tamanho da unidade testada (testes sociáveis vs. solitários).
  • Saberemos como escrever testes de integração para repositórios (jOOQ / JDBC / JPA) e APIs REST usando Kotlin, JUnit 6 e PostgreSQL via Testcontainers.
  • Saberemos como compartilhar fixtures, datasets SQL e Test Data Builders entre múltiplos módulos de um projeto Gradle 9 usando o plugin java-test-fixtures.
  • Dominaremos o mapeamento e os testes de colunas avançadas do PostgreSQL, como arrays (TEXT[]) e documentos JSONB.

Conteúdo

  • Prós e Contras de Aumentar o Tamanho da Unidade Testada

    Analise detalhadamente os prós e contras de aumentar o tamanho da unidade testada (testes unitários sociáveis) em APIs REST com Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3 e MockK 1.14, e entenda exatamente quando aplicar essa abordagem arquitetural.

  • Testes de Integração de Repositório: Configuração

    Aprenda a configurar testes de integração de repositório com Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3 e Testcontainers 2.0.5 (PostgreSQL), eliminando código duplicado por meio de meta-anotações customizadas.

  • Testes de Integração de Repositório: Consultas

    Aprenda a escrever testes de integração para funções de repositório Spring que leem dados do banco de dados PostgreSQL utilizando Kotlin 2.4.21, Spring Boot 4.1.2, JUnit Jupiter 6.0.3, AssertJ 3.27.7 e DbUnit com datasets XML.

  • Testes de Integração de Repositório: Mutações

    Aprenda a escrever testes de integração completos para métodos de repositório que realizam mutações no banco de dados PostgreSQL usando Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3, Testcontainers 2.0.5, DbUnit com pequenos datasets de expectativa e AssertJ SoftAssertions.

  • Testes de Integração de API REST: Configuração

    Aprenda a eliminar código de configuração duplicado ao estruturar testes de integração para APIs REST com Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3, Testcontainers 2.0.5 PostgreSQL e MockMvc Kotlin DSL utilizando anotações compostas customizadas.

  • Testes de Integração de API REST: Leitura

    Aprenda a escrever testes de integração completos para endpoints de leitura de APIs REST com Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3, Testcontainers 2.0.5 (PostgreSQL), MockMvc Kotlin DSL e DbUnit com ordenação customizada de TestExecutionListeners.

  • Testes de Integração de API REST: Escrita

    Aprenda a escrever testes de integração completos para endpoints de escrita em APIs REST com Kotlin 2.4.21, Spring Boot 4.1.2, JUnit Jupiter 6.0.3, MockMvc e DbUnit sobre PostgreSQL no Testcontainers 2.0.5, validando tanto o banco de dados quanto os payloads de resposta.

  • Compartilhando Fixtures Entre Módulos com java-test-fixtures

    Aprenda a publicar e compartilhar datasets de teste e fixtures entre múltiplos módulos usando repositórios Maven e o plugin java-test-fixtures no Gradle 9.8.2 com Kotlin 2.4.21 e Spring Boot 4.1.2.

  • Compartilhando Datasets e Builders no Gradle 9

    Aprenda a publicar e compartilhar datasets do DbUnit e builders de teste entre múltiplos módulos utilizando Gradle 9.8.2 Kotlin DSL, o plugin maven-publish e java-test-fixtures com Spring Boot 4.1.2 e Kotlin 2.4.21.

  • Testando Tipos Customizados no PostgreSQL: Fundamentos

    Aprenda os fundamentos para implementar tipos de dados customizados no DbUnit estendendo AbstractDataType e integrando uma PostgresqlDataTypeFactory customizada com Spring Boot 4.1.2, Kotlin 2.4.21, JUnit Jupiter 6.0.3 e Testcontainers.

  • Testando Colunas TEXT[] (Arrays PostgreSQL) em Testes

    Aprenda a configurar e testar colunas do tipo TEXT[] (arrays nativos do PostgreSQL) com DbUnit, implementando um DataType customizado (StringArrayDataType) e estendendo a PostgresqlDataTypeFactory no Spring Boot 4.1.2 e Kotlin 2.4.21.

  • Testando Colunas JSONB do PostgreSQL com Jackson e Kotlin

    Aprenda a implementar e habilitar tipos de dados customizados no DbUnit para colunas JSON e JSONB do PostgreSQL, mapeando documentos complexos com Jackson Kotlin Module no Spring Boot 4.1.2, Kotlin 2.4.21 e Testcontainers 2.0.5.