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:
Ajuda a descobrir onde não funciona
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.
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.
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