Pergunta

O teste de unidade é, grosso modo, testar bits do seu código isoladamente com o código de teste.As vantagens imediatas que vêm à mente são:

  • A execução dos testes torna-se automatizável e repetível
  • Você pode testar em um nível muito mais granular do que o teste apontar e clicar por meio de uma GUI

Rytmis

Minha pergunta é: quais são as "melhores práticas" atuais em termos de ferramentas, bem como quando e onde usar testes unitários como parte de sua codificação diária?

Vamos tentar ser um tanto agnósticos quanto à linguagem e cobrir todas as bases.

Foi útil?

Solução

Ok, aqui estão algumas práticas recomendadas de alguém que não faz testes unitários tanto quanto deveria... tosse.

  1. Certifique-se de que seus testes testem umcoisa e apenas uma coisa.
  2. Escreva testes de unidade conforme você avança.Preferencialmente antes você escreve o código que está testando.
  3. Não faça testes de unidade na GUI.
  4. Separe suas preocupações.
  5. Minimize as dependências dos seus testes.
  6. Comportamento simulado com zombarias.

Outras dicas

Você pode querer dar uma olhada TDD em três cartões de índice e Três fichas para lembrar facilmente a essência do desenvolvimento orientado a testes:

Cartão nº 1.As três leis do tio Bob

  • Não escreva nenhum código de produção, exceto para passar em um teste com falha.
  • Escreva apenas o suficiente de um teste para demonstrar uma falha.
  • Escreva apenas código de produção suficiente para passar no teste.

Cartão nº 2:PRIMEIROS Princípios

  • Rápido:Extremamente rápido, centenas ou milhares por segundo.
  • Isolado:O teste isola claramente uma falha.
  • Repetivel:Posso executá-lo repetidamente e ele será aprovado ou reprovado da mesma maneira todas as vezes.
  • Autoverificação:O teste é inequivocamente aprovado-reprovado.
  • Oportuno:Produzido em sincronia com pequenas alterações de código.

Cartão nº 3:Núcleo do TDD

  • Vermelho:teste falha
  • Verde:testes aprovados
  • Refatorar:limpar código e testes

O assim chamado xUnidade estrutura é amplamente utilizada.Ele foi originalmente desenvolvido para Smalltalk como SUnit, evoluiu para JUnit para Java e agora possui muitas outras implementações, como NUnit para .Net.É quase um padrão de fato - se você disser que está usando testes de unidade, a maioria dos outros desenvolvedores presumirá que você se refere ao xUnit ou similar.

Um excelente recurso para 'melhores práticas' é o Blog de testes do Google, por exemplo, uma postagem recente em Escrevendo código testável é um recurso fantástico.Especificamente, as postagens semanais da série 'Testando no banheiro' são ótimas para postar em torno de seu cubo ou banheiro, para que você possa sempre pensar em testar.

A família xUnit é a base dos testes unitários.Eles são integrados a Netbeans, Eclipse e muitos outros IDEs.Eles oferecem uma solução simples e estruturada para testes unitários.

Uma coisa que sempre tento fazer ao escrever um teste é minimizar o uso de código externo.Com isso quero dizer:Tento minimizar o máximo possível o código de configuração e desmontagem do teste e tento evitar o máximo possível o uso de outros módulos/blocos de código.Código modular bem escrito não deve exigir muito código externo em sua configuração e desmontagem.

NUnit é uma boa ferramenta para qualquer uma das linguagens .NET.

Os testes unitários podem ser usados ​​de diversas maneiras:

  1. Lógica de teste
  2. Aumente a separação de unidades de código.Se você não puder testar completamente uma função ou seção de código, então as partes que a compõem são muito interdependentes.
  3. Impulsione o desenvolvimento, algumas pessoas escrevem testes antes eles escrevem o código a ser testado.Isso força você a pensar sobre o que deseja que o código fazer, e, em seguida, fornece uma orientação definitiva sobre quando você conseguiu isso.

Não se esqueça do suporte à refatoração.O ReSharper no .NET fornece refatoração automática e correções rápidas para código ausente.Isso significa que se você escrever uma chamada para algo que não existe, o ReSharper perguntará se você deseja criar a peça que falta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top