O documento discute sobre os benefícios do uso de Dublês de Teste para isolar dependências e tornar os testes unitários mais ágeis. Explica as diferenças entre Dummy Object, Test Stub, Test Spy, Mock Object e Fake Object e como cada um pode ser usado para focar nos objetivos do teste, ignorando detalhes não relevantes.
6. Entrada indireta – dados que a unidade de teste obtém de algum objeto do qual ela depende (atributo de instância, parâmetro, etc). Saída indireta – resultados esperados da unidade de teste que não podem ser conferidos apenas pelo valor de retorno. Efeitos colaterais.
7.
8. Dummy Object – usado apenas para que a execução do teste seja possível Test Stub – provê informação necessária para a unidade de teste Test Spy – captura e armazena as chamadas indiretas Mock Object – verifica chamadas indiretas e provê dados necessários ao teste Fake Object – provê uma implementação falsa de um objeto real
9. Queremos verificar a adição de um produto na nota fiscal. Suponha que para criar a nota seja obrigatório informar o fornececedor, porém ele não será utilizado para exercitar o teste. Nota Fiscal Item Produto Fornecedor Add Item
10. Usando Stubs para testar Servlets. Neste teste é ignorado a existência de um container web (Tomcat, por exemplo) o objetivo é avaliar o comportamento do servlet
11.
12.
13. Força um determinado comportamento para tornar possível verificar o tratamento de Exceptions.
14. Captura informações sobre os efeitos colaterais provocados pela unidade sob teste, para que o teste verifique se estão corretos.
17. Estrito : espera as mesmas chamadas exatamente na mesma ordem que especificado Tolerante: aceita qualquer ordem das chamadas, inclusive com chamadas a mais ou a menos
18. Substitui funcionalidade real por uma implementação alternativa. Emulando o comportamento real, com características amigáveis ao teste. Não é controlado nem observado pelo teste.