introducao a dubles de testes

22
Ismael soares

Upload: ismael

Post on 11-Jun-2015

2.710 views

Category:

Technology


13 download

DESCRIPTION

Conheça os principais tipos de dublês que testes que irão agilizar o seu desenvolvimento de testes orientado por testes (TDD)

TRANSCRIPT

Page 1: Introducao a Dubles de Testes

Ismael soares

Page 2: Introducao a Dubles de Testes

Testes unitários focam

apenas em uma unidade.

Page 3: Introducao a Dubles de Testes

Gasta-se muito tempo criando

Fixtures que não são o alvo do teste

Page 4: Introducao a Dubles de Testes

Posso ganhar agilidade usando Dublês de Testes?

Brilhante!

Use Dublês de Testes!!!

Page 5: Introducao a Dubles de Testes

Os Dublês oferecem uma maneira

de isolar as dependências

Page 6: Introducao a Dubles de Testes

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 serconferidos apenas pelo valor de retorno. Efeitos colaterais.

Page 7: Introducao a Dubles de Testes
Page 8: Introducao a Dubles de Testes

Dummy Object Dummy Object – usado apenas para que a execução do teste seja possível

Test Stub Test Stub – provê informação necessária para a unidade de teste

Test Spy Test Spy – captura e armazena as chamadas indiretas

Mock Object Mock Object – verifica chamadas indiretas e provê dados necessários ao teste

Fake Object Fake Object – provê uma implementação falsa de um objeto real

Page 9: Introducao a Dubles de Testes

Nota Fiscal Item

Produto Fornecedor

Add Item

Queremos verificar a adição de um produto na nota fiscal.Queremos verificar a adição de um produto na nota fiscal.Suponha que para criar a nota seja obrigatório informar o fornececedor, Suponha que para criar a nota seja obrigatório informar o fornececedor,

porém ele não será utilizado para exercitar o teste.porém ele não será utilizado para exercitar o teste.

Page 10: Introducao a Dubles de Testes

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

Page 11: Introducao a Dubles de Testes
Page 12: Introducao a Dubles de Testes
Page 13: Introducao a Dubles de Testes

Força um determinado comportamento para tornar possível verificar o tratamento de Exceptions.

Page 14: Introducao a Dubles de Testes

Captura informações sobre os efeitos colateraisprovocados pela unidade sob teste, para que o

teste verifique se estão corretos.

Page 15: Introducao a Dubles de Testes

Verificar notificações a observadores

Page 16: Introducao a Dubles de Testes

Retornos pré-estabelecidos

Verificações de interações

Verifica diretamente os efeitos colateraiscausados pela unidade sob teste

Page 17: Introducao a Dubles de Testes

EstritoEstrito: espera as mesmas chamadas exatamente namesma ordem que especificado

Tolerante: Tolerante: aceita qualquer ordem das chamadas,inclusive com chamadas a mais ou a menos

Page 18: Introducao a Dubles de Testes

Substitui funcionalidade real por umaSubstitui funcionalidade real por umaimplementação alternativa.implementação alternativa.Emulando o comportamento real, com Emulando o comportamento real, com características amigáveis ao teste.características amigáveis ao teste.

Não é controlado nem observado pelo Não é controlado nem observado pelo teste.teste.

Page 19: Introducao a Dubles de Testes

Mais exemplosMais exemplos

Escolhendo entre as diferençasEscolhendo entre as diferenças

Classista ou Mockista?Classista ou Mockista?

Ferramentas Ferramentas

VantagensVantagens

Page 20: Introducao a Dubles de Testes
Page 21: Introducao a Dubles de Testes

Links Imagens

http://www.rethinkware.com/download/attachments/557237/testesunitarios.JPG?version=1&modificationDate=1274749852384http://www.yogodoshi.com/blog/wp-content/uploads/hacker2.jpghttp://3.bp.blogspot.com/__8RKQKezcsk/TQee5_GRrEI/AAAAAAAABtk/-RNZUvv3Boo/s1600/0000+ideia.jpghttp://www.corposaudavel.net/wp-content/uploads/beneficios-laranja.jpghttp://dojofloripa.wordpress.com/2006/10/17/trabalhando-com-stubs/http://i.s8.com.br/images/sport/cover/img2/21203992_4.jpghttp://www.stanford.edu/group/storytelling/cgi-bin/joomla/images/stories/Impostor.jpghttp://www.mxmasters.com.br/wp-content/uploads/2010/02/falso2.jpg

Page 22: Introducao a Dubles de Testes

Referências

Artigo do Martin Fowler (Mocks Aren't Stubs)http://www.infoq.com/br/articles/mocks-Arent-Stubs#4

Curso de verão com Mariana Bravohttp://ccsl.ime.usp.br/agilcoop/files/TestesAutomatizados-3-1-Dubles-AgilCoop-Verao2009.pdf

Livro: xUnit Patternshttp://xunitpatterns.com/Test%20Spy.html