Community Launch VS 2010
Rio de Janeiro
Praticando
Test Driven Development
no VS 2010
Christian Cunha
Patrocínio:
Christian Cunha
Mais de 10 anos de experiência em desenvolvimento de
sistemas em .NET, utiliza metodologias ágeis e é um dos
fundadores da WhiteFox.
Blog: cccunha.wordpress.com
Twitter: twitter.com/cunha_br
whitefox.com.br
twitter.com/whitefoxbr
facebook.com/whitefoxsoftware
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
O que é TDD ?
 É uma tecnica de desenvolvimento de
software onde o programador escreve o
teste antes de escrever o código que irá
implementar a funcionalidade desejada.
Escreva o teste antes de escrever o código
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
“The single most important effect of praticing TDD is
that forces you as developer to be the first cosumer
of your own API.”
Brian Button
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Não se trata apenas de teste, trata-se de design
Test-First + Design Incremental
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Passos
1. Escreva um teste
2. Faça o teste passar
3. Refatore
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Regras
 Você não pode escrever mais nenhum teste
além do que o suficiente para que haja falha.
 Você não pode escrever nenhum código além do
necessário para fazer o teste passar
 Você só pode refatorar o código quando todos
os testes passarem
 Elimine a duplicação
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Vantagens
 Pensar do ponto de vista do cliente
 Testes relevantes
 Cobertura de código (não há código morto)
 Documentação executável
 Perde o medo de refactor
 Boas práticas de programação
 Economia de tempo e dinheiro em manutenções
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Sistem Under Test
É a menor parte do sistema que está sendo
testada.
Em um teste devemos ter apenas um SUT,
desta forma todos os outros objetos são
auxiliares, logo não devemos nos preocupar
em testa-los neste mesmo teste.
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Dummy
Objetos que são passados mas nunca são
usados
Geralmente são usados para preencher listas
de paramentros
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Fake
Objetos com uma implementação real mas
que são usados em testes com seu
comportamento modificado
Um bom exemplo seria um objeto que simula
dados trazidos de um banco de dados
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Stubs
Objetos que respondem a chamadas durante
o teste e que pode armazenar informações
sobre essas chamadas
Stubs geralmente auxiliam o teste de SUT
por meio de verificações de estados
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Mocks
Objetos pre-programados com expectativas
de chamadas e paramentros recebidos afim
de testar os comportamentos e iterações de
um SUT
Mocks geralmente são usados nos testes
para simular recursos ou objectos que ainda
não existem ou que não temos controle
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
DEMONSTRAÇÃO

Criar um evento que será uma palestra com um número
determinado de lugares

Poderão se inscrever desenvolvedores e estudantes

Deve ser possível obter número de desenvolvedores e
estudantes inscritos na palestra

O número de inscrições não pode exceder ao número de
lugares
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Referencias
 Kent Beck

Livro: Test Driven Development: By Example
 Martin Fowler

http://martinfowler.com/articles/mocksArentStubs.html
 .Net Pragmático

http://rodbv.com/blog
 Blog Vinicius Quaiato

http://viniciusquaiato.com/blog
Community Launch VS 2010 – Rio de Janeiro
http://rj.dotnetarchitects.net
Community Launch VS 2010
Rio de Janeiro
Praticando
Test Driven Development
no VS 2010
Christian Cunha
Patrocínio:
Download

Community Launch VS 2010 Rio de Janeiro