Spock framework Testes automatizados ágeis para Java e REST

José Yoshiriro

*Você terá acesso às futuras atualizações do livro.

Conteúdo

Edição atualizada em 06/2024.

Versão atualizada para Spock 2.3-groovy-4.0.

A presença de testes automatizados é importante para dar segurança em qualquer código. Seja para refatorá-lo, mantê-lo, seja para inserir novas funcionalidades, os testes permitem uma detecção mais rápida quando algum comportamento anterior é quebrado. Um software interage com diversos recursos dentro de seu ecossistema e provê diferentes tipos de interface para a execução de suas funcionalidades, e é necessário lidar com tudo isso ao criar seus testes automatizados. O Spock framework é uma ferramenta muito poderosa, que pode ser a grande aliada de sua equipe na construção mais rápida e simples de testes melhores e menos verbosos.

Neste livro, José Yoshiriro ensina a utilizar as funcionalidades do Spock framework e apresenta as técnicas de teste, juntamente com exemplos didáticos e focados em problemas do mundo real para tecnologias que são padrão de mercado. Você conhecerá esta ferramenta completa, que dispensa a configuração de bibliotecas adicionais, e dominará suas principais funcionalidades: criação de simples testes unitários; uso de Mocks; o recurso de Data-Driven Testing; de integração para Spring e funcionais para REST APIs.

Tópicos que foram atualizados:

Versão do Groovy atualizada para 4.0.x; Versão do Spock atualizada para 2.3-groovy-4.0; Orientações de configurações melhoradas; Inclusão de orientações de configurações com asdf; Projetos de referência online para Java 8, 11 e 17, com Maven e Gradle; Retirada da orientações de configurações com SBT.

Saiba o que você vai aprender

 

Sumário

  • 1 Por que usar Spock framework?
  • 1.1 Por que criar testes automatizados?
  • 1.2 Testes que podemos criar com Spock
  • 1.3 Por que usar Spock para projetos Java se temos JUnit, TestNG, Mockito etc.?
  • 2 Preparando o ambiente para trabalhar com Spock
  • 2.1 Configurando o Groovy nas principais IDEs Java
  • 2.2 Uso de Groovy em editores de código simples (VS Code, Sublime Text, Vim etc.)
  • 2.3 Configurando as dependências Spock do projeto com Maven
  • 2.4 Configurando as dependências Spock do projeto com Gradle
  • 3 Primeiros testes automatizados com Spock
  • 3.1 Primeiro teste: A classe Math calcula potência corretamente?
  • 3.2 Executando um teste
  • 3.3 O que acontece quando um teste falha
  • 3.4 Forçando a execução de várias asserções (ou verificações)
  • 3.5 Exemplos de execução de testes no IntelliJ e no Eclipse
  • 3.6 Problema na execução de testes no Eclipse 2018 e 2019
  • 4 Anatomia de um teste Spock
  • 4.1 Testes são chamados de Specifications
  • 4.2 Uma classe de teste pode conter vários métodos de teste
  • 4.3 Fixture Methods (métodos de montagem)
  • 4.4 Blocks (Blocos)
  • 4.5 Por que a anatomia do Spock é essa?
  • 5 Data-Driven Testing - Facilitando os testes de múltiplos cenários
  • 5.1 Testando um Analisador de IMC
  • 5.2 Um método, vários cenários
  • 5.3 Descrevendo os testes que falham com detalhes dos cenários
  • 6 Exception Conditions - Testes à espera de exceções
  • 6.1 Às vezes o certo é dar errado
  • 6.2 Testando vários cenários de erro
  • 6.3 Verificando detalhes das exceções
  • 7 Testando com a ajuda de mocks
  • 7.1 O que são dublês e por que usá-los
  • 7.2 Dependências adicionais para mocks
  • 7.3 Configurando retornos de métodos em mocks
  • 7.4 Configurando mocks para lançarem exceções
  • 7.5 Configurando retornos de métodos aninhados em mocks
  • 7.6 Verificando a quantidade de execuções de métodos dos mocks
  • 8 Testando RESTful APIs
  • 8.1 O que são RESTful APIs e a importância de serem bem testadas
  • 8.2 Documentação da API de Cálculo e Banco de IMC
  • 8.3 Testando o endpoint GET /imcs/{id}
  • 8.4 Testando o endpoint GET /imcs
  • 8.5 Testando o endpoint POST /imcs
  • 8.6 Testando o endpoint DELETE /imcs/{id}
  • 9 Recursos avançados
  • 9.1 Ignorando testes
  • 9.2 Tolerância de tempo de um teste com @Timeout
  • 9.3 Executando os testes na ordem em que estão na classe com @Stepwise
  • 9.4 Automatizando a repetição de testes com @Retry
  • 9.5 Compartilhando objetos entre testes com @Shared
  • 9.6 Restaurando propriedades do sistema com @RestoreSystemProperties
  • 9.7 Dando um título para a classe de testes com @Title
  • 9.8 Indicando referências
  • 10 Relatórios profissionais com Spock Reports Extention
  • 10.1 Configurando o Spock Reports Extension
  • 10.2 Alterando o diretório de geração do relatório
  • 10.3 Anotações @Title, @See e @Issue são usadas nos relatórios
  • 11 Testando metaprogramação (anotações)
  • 11.1 Metaprogramação em Java: anotações
  • 11.2 Por que testar anotações?
  • 11.3 Testando anotações de uma entidade JPA
  • 12 Testes de integração em projetos Spring
  • 12.1 Spring TestContext framework e Spring Module do Spock
  • 12.2 Testes de integração em um projeto Spring Boot
  • 12.3 Testes de integração em um projeto Spring MVC
  • 12.4 Ciclo de vida do contexto Spring nos testes de integração
  • 12.5 Profiles e properties do projeto Spring nos testes de integração
  • 13 Apêndice A - Guia de Groovy para desenvolvedores Java
  • 13.1 Como funciona o Groovy
  • 13.2 Características e recursos do Groovy
  • 14 Apêndice B - Perguntas frequentes sobre o Spock
  • 15 Referências

Autor

José Yoshiriro

Bacharel em sistemas de informação (IESAM), especialista em engenharia de sistemas (ESAB) e mestre em ciências (USP). Ministra aulas em cursos de nível universitário desde 2010. É líder pedagógico na Faculdade São Paulo Tech School (SPTech) onde trabalha desde 2014. Já foi professor da FIAP e conteudista da FIAP ON entre 2017 e 2018. Trabalha com desenvolvimento/arquitetura de software desde 2004, tendo trabalhado principalmente com Java, Groovy, JavaScript e Python. Já atuou na criação e/ou evolução de sistemas usados em empresas como BrasilPrev, Citibank, Caixa Econômica Federal, Rico Home Broker, BNP, Tribunal de Justiça do Pará, American Red Cross (EUA) e OneBlood (EUA). Já contribuiu em vários projetos open source. É criador do validador de Bitcoin do Hibernate Validator. Detém certificações internacionais Oracle (SCJP 6, SCWCD 5 e SCBCD 5) e OMG (OCUP). Possui vários artigos sobre programação publicados no Brasil e EUA e já palestrou em vários eventos de tecnologia como FISL (2015), Virada Tecnológica de São Paulo de 2017 e TDC São Paulo (2014, 2015 e 2017). É autor dos livros "Spock framework: Testes automatizados ágeis para Java e REST" e "Deixe seu código limpo e brilhante: Desmistificando Clean Code com Java e Python", ambos pela Casa do Código.

Dados do produto

Número de páginas:
252
ISBN:
978-85-5519-373-6
Data publicação:
10/2018. Atualizado em 06/2024.

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter