introducao a dubles de testes

Post on 11-Jun-2015

2.710 Views

Category:

Technology

13 Downloads

Preview:

Click to see full reader

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

Ismael soares

Testes unitários focam

apenas em uma unidade.

Gasta-se muito tempo criando

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

Posso ganhar agilidade usando Dublês de Testes?

Brilhante!

Use Dublês de Testes!!!

Os Dublês oferecem uma maneira

de isolar as dependências

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.

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

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.

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

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

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

teste verifique se estão corretos.

Verificar notificações a observadores

Retornos pré-estabelecidos

Verificações de interações

Verifica diretamente os efeitos colateraiscausados pela unidade sob teste

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

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.

Mais exemplosMais exemplos

Escolhendo entre as diferençasEscolhendo entre as diferenças

Classista ou Mockista?Classista ou Mockista?

Ferramentas Ferramentas

VantagensVantagens

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

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

top related