Spock framework Testes automatizados para Java, Android e REST
José Yoshiriro
Conteúdo
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; criação de testes unitários para Android, de integração para Spring e funcionais para REST APIs.
Versão ampliada e atualizada para v1.3
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 (Sublime Text, Brackets, Atom etc.)
- 2.3 Configurando as dependências Spock do projeto com Maven
- 2.4 Configurando as dependências Spock do projeto com Gradle
- 2.5 Problema com a JDK 11 + Groovy até 2.5.2
- 2.6 Execução de testes no Eclipe 2018+
- 2.7 Experimentando o Spock on-line
- 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
- 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 Preparando o projeto para testes de REST APIs com o HTTP Client Framework For Groovy
- 8.4 Testando o Endpoint POST /imcs
- 8.5 Testando o Endpoint GET /imcs/{id}
- 8.6 Testando o Endpoint GET /imcs
- 8.7 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 Alterando o diretório de geração do relatório
- 10.2 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 Testes unitários em projetos Android
- 13.1 Estudo de caso
- 13.2 Configurando um projeto Android para trabalhar com Groovy
- 13.3 Testando o projeto Android
- 13.4 Limitações do Spock no Android
- 14 Apêndice A - Guia de Groovy para desenvolvedores Java
- 14.1 Como funciona o Groovy
- 14.2 Características e recursos do Groovy
- 15 Apêndice B - Perguntas frequentes sobre o Spock
- 16 Referências
Autor

José Yoshiriro
Bacharel em sistemas de informação, especialista em engenharia de sistemas e mestrando em Administração das Organizações pela 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á criou/contribuiu em projetos open source para a http://Apache.org e http://Grails.org . 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 para Java, Android 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:
- 250
- ISBN:
- 978-85-94188-87-8
- Data publicação:
- 10/2018. Atualizado em 08/2019