community launch vs 2010 rio de janeiro patrocínio: praticando test driven development no vs 2010...
TRANSCRIPT
Community Launch VS 2010
Rio de Janeiro
Patrocínio:
PraticandoTest Driven Development
no VS 2010 Christian Cunha
Community Launch VS 2010 – Rio de Janeiro http://rj.dotnetarchitects.net
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
Patrocínio:
PraticandoTest Driven Development
no VS 2010 Christian Cunha