Expectativas de testes

Esta página descreve o que buscamos ao testar o novo código que está sendo adicionado ao Dynamo.

Então. Você tem um novo nó que quer adicionar. Ótimo. É hora de adicionar alguns testes. Há dois principais motivos para isso:

  1. Ajuda a descobrir onde não funciona

  2. Quando alguém altera algo que quebra o nó, isso deve quebrar os testes. Dessa forma, a pessoa que quebrou os testes precisa corrigi-los. Se isso não quebrar os testes, será em grande parte seu problema lidar com os usuários cujos modelos foram quebrados.

Os testes no Dynamo vêm em dois tipos gerais: testes de unidade e testes de sistema.

Testes de unidade

Os testes de unidade devem testar o mínimo possível. Se você construiu um nó que calcula raízes quadradas por meio de um nó sem toque em C#, o teste deverá testar apenas esse DLL e fazer chamadas em C# diretamente para esse código. Os testes de unidade nem deveriam incluir o Dynamo.

Deveriam incluir:

  • Testes positivos (faz a coisa certa)

  • Testes negativos (não falha quando recebe entradas inválidas)

  • Testes de regressão (quando alguém encontrar um bug no código, escreva um teste para garantir que ele não ocorra novamente)

Eles devem ser pequenos, rápidos e confiáveis. A maioria dos testes deve ser testes de unidade.

Testes de sistema

Os testes de sistema operam em vários componentes e testam como eles se encaixam. Eles devem ser usados e criados com cuidado.

Por quê? É caro executá-los. Precisamos manter o conjunto de testes em execução com o mínimo de latência possível.

Ao escrever um teste de sistema, a primeira coisa a fazer é analisar este diagrama e descobrir quais subsistemas você está cobrindo.

O ideal seria que houvesse uma série progressiva de testes cobrindo conjuntos crescentes de blocos interativos para que, quando os testes começassem a falhar, fosse muito rápido descobrir onde está o problema.

Exemplos de coisas que precisam de testes de sistema:

  • Um novo tipo de nó Revit que armazena vários elementos no rastreamento em vez de um único elemento

  • Um novo nó de inspeção que exibe dados de forma diferente

Exemplo de coisas que não precisam de testes de sistema:

  • Um novo nó matemático

  • Uma biblioteca de processamento de sequência de caracteres

Os testes de sistema devem:

  • Afirmar o comportamento correto

  • Afirmar ausência de comportamentos patológicos, por exemplo, sem exceções

Last updated