Eu quero começar a usar o TDD. Alguma dica para iniciantes? [fechadas]

27

Nunca usei um mecanismo de teste automatizado em nenhum dos meus projetos e sinto que estou perdendo muito. Eu quero me aperfeiçoar, então tenho que começar a lidar com alguns problemas que negligenciei assim e tentar o Git em vez de ficar preso no SVN.

Qual é uma boa maneira de aprender TDD? Provavelmente usarei o Eclipse para programar em Java. Ouvi falar do JUnit, mas não sei se há mais alguma coisa que devo considerar.

Mike42
fonte

Respostas:

15

Você pode começar trabalhando na codificação de katas . Escolha um algoritmo (por exemplo, conversão de número decimal em romano, pontuação de um jogo de boliche, jogo da vida de Conway etc.) e tente usar o TDD para trabalhar na solução.

Sua estrutura de solução provavelmente será muito simples (muito mais simples que o código de produção do mundo real): uma classe para o equipamento de teste e uma classe que contém o algoritmo em teste. E a classe em teste sem dependências é outra vantagem. Você pode usar a simplicidade dessa configuração para obter rapidamente o travamento do loop de refator vermelho-verde.

Qual ferramenta você usa para seus katas TDD realmente não importa, desde que você se atenha aos princípios. No entanto, o plugin JUnit para Eclipse é muito fácil de usar, por isso é uma excelente opção.

azheglov
fonte
8

Familiarize-se com o AAA , leia sobre isso, leia sobre os problemas que acompanham o desenvolvimento orientado a testes ( design para testabilidade versus ferramentas de alto custo para que o design não importe). Aprenda Injeção de Dependências para que a remoção de dependências externas para teste se torne mais simples.

Aqui está uma boa visão geral das anotações que fiz durante a leitura de The Art of Unit Testing

http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html

Maslow
fonte
1
+1 por recomendar The Art of Unit Testing. Na minha opinião, um dos melhores livros para explicar o teste de unidade sem assustar os leitores.
Anne Schuessler
6

Realmente não há substituto para apenas pegar um equipamento de teste (como NUnit), ler parte da literatura e, em seguida, sujar as mãos.

Como James T. Kirk disse uma vez, "aprendemos fazendo".

Chris Holmes
fonte
4

Eu recomendo este livro: Crescendo software orientado a objetos guiado por testes

Ele tem um exemplo elaborado que percorre o livro e fornece uma visão muito coerente de quando o teste deve ser criado, o que eles devem conter e como devem ser construídos e refatorados.

flamingpenguin
fonte
-3

Verifique este link . É o blog de Bob Martin sobre TDD - coisas excelentes para você entender (ou dar outra perspectiva sobre) o pensamento em TDD.

Ratkok
fonte
2
O slogan do blog, nas próprias palavras do tio Bob, é "Escritos sobre código limpo, design e todo o tipo de software". O conteúdo do blog é muito mais amplo que o "qualquer dica para iniciantes [no TDD] do OP".
21411 azheglov