Como você lida com a medição de cobertura de código em JavaScript?

5

Para medir a Cobertura de código para testes de unidade JavaScript, é necessário instrumentar o código, executar os testes e depois executar o pós-processamento.

Minha preocupação é que, como resultado, você é um código de teste de unidade que nunca será executado na produção. Como o JavaScript não é compilado, o que você testa deve ser precisamente o que você executa.

Então aqui está a minha pergunta, como você lida com isso? Um pensamento que eu tinha era para executar o teste de unidade no código de produção e usar isso para o meu passe falhar. Eu criaria uma sombra do meu código de produção, com instrumentação e executaria meus testes de unidade novamente; isso me daria minhas estatísticas de cobertura de código.

Alguém se deparou com um método que é um pouco mais gracioso do que isso?

EDITAR Eu não quero usar plugins de navegador, porque eu preciso usar um navegador para executar meus testes de unidade.

    
por Dancrumb 27.06.2012 / 22:34
fonte

2 respostas

3

Leia isto em ferramentas de cobertura de código para JavaScript , que tem alguns links, embora a maioria seja de fato extensões de navegador.

No entanto, considere o JsTestDriver , que tem suporte a cobertura de código e permite testar fora do navegador conectando-se a outra ferramenta de teste (como HtmlUnit ).

    
por 28.06.2012 / 00:18
fonte
0

Eu não sou anti-teste, mas o próprio conceito de tentar estabelecer "cobertura de código" no JavaScript do lado do cliente me parece um ponto faltante. Não resolva problemas que você não tem. Preocupe-se com os riscos reais, não com todos os códigos que você escreveu. Riscos no meu livro são códigos que entram em contato com coisas de terceiros sobre as quais você não tem controle ou uma peça mal arquitetada de um aplicativo onde muitas mãos estão no mesmo jarro de cookie. Se um aplicativo inteiro é frágil e propenso a problemas de regressão, tudo o que tenta alcançar a cobertura de código máxima é para você ativar mais códigos ruins.

A execução de código no JS do lado do cliente é trivial. Você deveria estar testando tudo o que você faz à medida que escreve e mantendo as coisas limpas e desacopladas para evitar erros de regressão em primeiro lugar.

    
por 16.01.2013 / 15:11
fonte