1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Unit Testing

Discussão em 'Web Development' iniciada por Gurzi, 28 de Agosto de 2008. (Respostas: 6; Visualizações: 754)

  1. Gurzi

    Gurzi Power Member

    Boas pessoal,

    Hoje ouvi falar deste conceito e ainda não o entendi muito bem.

    O que quero perceber é se alguem realmente o aplica e qual a vossa opinião sobre o tema, se é útil, se não é, quando deve ser utilizado etc.

    Fico a aguardar a vossa ajuda,

    Obrigado
     
  2. pjfaria

    pjfaria Power Member

    Partindo do principio que te referes aos testes unitários no âmbito da programação:

    Testes unitários são pequenas funções cujo objectivo é validar o resultado das funções presentes nio teu código. São validadores de funcionalidade. Permitem saber se o teu código, mediante um certo input, te devolve o output esperado.

    Exemplo:

    Tens isto no teu código:

    int SUM(int a, int b){
    return a + b;
    }

    Um teste unitário para isto seria:

    bool unitTest_SUM()
    {
    return ( SUM(3,3) == 6 )
    }

    Naturalmente isto pode subir em complexidade, ler de fontes de dados (BDs, CSVs, etc) conjuntos de dados de teste, para este exemplo:

    2 2 4
    3 3 6
    5 5 10
     
  3. Gurzi

    Gurzi Power Member

    Obrigado pela resposta.

    Normalmente utiliza-se uma função de teste para cada função ?

    Podes me dar um exemplo de base de dados que utilizes ?

    Cumps
     
  4. pjfaria

    pjfaria Power Member

    Dependendo do "code coverage" que queres atingir, podes fazes testes unitários para tudo ou não. O mais importante é abranger a maior % de código possível, dando tanto mais atenção quanto maior for a criticidade de determinada função no comportamento do sistema. Naturalmente, quando digo função, pode ser mais que uma. Se para uma determinada funcionalidade, várias funções cooperarem cada uma com a sua parte, o teste unitário pode inclui-las e testas o resultado que, neste caso, só faz sentido como todas elas.

    Quanto ao exemplo que pedes, não é possível colocá-lo aqui. De qualquer forma não acho necessário pois o que muda em relação ao que te disse no post anterior é a fonte de dados. No exemplo está "hard-coded" os valores de INPUT e o OUTPUT esperado.

    Se tiveres uma tabela em BD, ou um ficheiro CSV com uma bateria de dados INPUT e o correspondente OUTPUT esperado:

    INPUT1 INPUT2 RESULT
    3 3 6
    5 2 7

    Sendo isto um CSV ou uma tabela, podes alimentar sucessivas invocações do teste com estes valores, e no fim avaliar o desempenho pela % de acertos da tua função
     
  5. Gurzi

    Gurzi Power Member

    Dá para criar esses testes unitários de forma a serem reutilizáveis, ou fazes de rais para cada projecto ?

    Um pouco o conceito do oop, fazes uma funcao de teste para cada funcao, ou reeutilizas ?
     
  6. AliFromCairo

    AliFromCairo Power Member

    Boas, é possível usares frameworks para os testes unitários, como por exemplo, o JUnit (Java) ou NUnit (.NET).
     

Partilhar esta Página