16
Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha

Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

Embed Size (px)

Citation preview

Page 1: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

Community Launch VS 2010

Rio de Janeiro

Patrocínio:

PraticandoTest Driven Development

no VS 2010 Christian Cunha

Page 2: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha 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

Page 3: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 4: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 5: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 6: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

Community Launch VS 2010 – Rio de Janeiro http://rj.dotnetarchitects.net

Passos

1. Escreva um teste

2. Faça o teste passar

3. Refatore

Page 7: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 8: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 9: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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.

Page 10: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 11: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 12: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 13: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 14: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 15: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

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

Page 16: Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha

Community Launch VS 2010

Rio de Janeiro

Patrocínio:

PraticandoTest Driven Development

no VS 2010 Christian Cunha