O que é uma lista de critérios para escolher uma estrutura de teste?
1) Sintaxe
Ao investigar diferentes estruturas de teste, você notará que a sintaxe é um fator diferenciador em todas elas. Isso realmente vai depender do que faz você se sentir confortável.
Por exemplo, qUnit é mais uma estrutura de teste declarativa. Sua API consiste em funções chamadas teste, iguais, strictEqual, deepEqual, etc.
Outra estrutura de teste, o mocha , é mais parecida com rspec, na medida em que lê em uma frase mais parecida com a estrutura. Sua API consiste em funções chamadas de descrição, assert.equal etc.
Minha preferência pessoal é uma estrutura semelhante a um qunit.
2) Recursos - Stubs, Spies, servidor falso, relógio falso, etc
Ao iniciar o teste em Javascript, você se encontrará rapidamente em situações em que precisa da estrutura de teste para ajudá-lo a testar determinados casos de uso. Por exemplo:
Espiões - Isso ajudará você a detectar se o seu código chamou uma função quando deveria
Stubs - Muito semelhante a um espião, exceto que ele contém um comportamento predefinido (exemplo: quando o stub é chamado, retorne foo)
Servidor falso - Se o seu código emitir chamadas AJAX e você desejar falsificar a resposta da chamada AJAX, um servidor falso o ajudará a testar com mais facilidade.
Relógio falso - Se o seu código reagir de maneira diferente com base na data ou hora, um relógio falso o ajudará a controlar exatamente que horas são enquanto o teste é executado.
Minha recomendação para uma estrutura Javascript que ofereça suporte a todos os recursos acima é Sinon.JS . Como gosto de um qunit como sintaxe e estrutura, uso o qunit AND Sinon.JS. O qunit lida com minhas afirmações e executa meus testes. O Sinon.JS me dá a capacidade de stub, espionar, executar um servidor falso e falsificar o relógio.
3) Suporte da comunidade
Sua estrutura de teste é suportada pela comunidade? Por exemplo, o grunt (uma ferramenta de ambiente de construção) suporta a execução de qunit em um servidor PhantomJS sem cabeça: https://github.com/gruntjs/grunt-contrib-qunit . Isso facilita a gravação de testes e a execução automática deles sempre que eu salvar o arquivo de teste.
É prático experimentá-los todos?
Não, não é prático. Em vez disso, investigue o site de cada estrutura e escolha um com o qual você se sinta confortável e outro que também o apoiará durante os testes de gravação.
Gaste muito tempo lendo fóruns / etc sobre como eles são usados?
Pegue um livro sobre a estrutura que você escolher e percorra-a conforme necessário.