Introdução
Neste projeto, você aprenderá como corrigir um problema no arquivo async.spec.js dentro do projeto vue-router-3.0.1. O arquivo async.spec.js contém um caso de teste que não está detectando um erro corretamente, e sua tarefa é modificar o código para garantir que o teste passe como esperado.
👀 Pré-visualização
Message:
Expected $.length = 3 to equal 5.
Expected $[3] = undefined to equal 4.
Expected $[4] = undefined to equal 5.
🎯 Tarefas
Neste projeto, você aprenderá:
- Como localizar e modificar o arquivo
async.spec.jsno projetovue-router-3.0.1 - Como entender o problema com o caso de teste existente
- Como implementar as alterações necessárias para corrigir o caso de teste
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Identificar e corrigir problemas em testes unitários
- Trabalhar com código assíncrono e a função utilitária
runQueue - Aplicar técnicas para depurar e solucionar problemas em casos de teste
Corrigir o Teste em async.spec.js
Para começar, podemos ver a pasta vue-router-3.0.1 no diretório à esquerda do editor.
Nesta etapa, você aprenderá como corrigir o problema no arquivo async.spec.js no projeto vue-router-3.0.1.
- Abra o arquivo
vue-router-3.0.1/test/unit/specs/async.spec.js. - Localize o bloco
it("should work", (done) => { ... }). - Altere
const queue = [1, 2, 3, 4, 5].mapparaconst queue = [1, 2, 3].mappara facilitar o teste.
const queue = [1, 2, 3].map((i) => (next) => {
// ...
});
- Abra o diretório
vue-router-3.0.1no terminal. - Execute o comando
npm installpara instalar as dependências. Este processo pode levar um tempo, por favor, seja paciente. (Se ficar preso por muito tempo, pressioneCtrl+Cpara interromper o processo e, em seguida, execute este comando novamente.) - Após instalar com sucesso todas as dependências, execute o teste unitário executando o comando
npm run test:unitno terminal. Antes da correção, você notará que o script de teste acima não detectou nenhum erro. (No código acima, o valor decallsé[1, 2, 3]que não é igual a[1, 2, 3, 4, 5]). - Para corrigir o problema acima, vamos em frente e alterar dentro do arquivo
vue-router-3.0.1/test/unit/specs/async.spec.jspara o seguinte código:
const queue = [1, 2, 3].map((i) => (next) => {
calls.push(i);
setTimeout(next, 0);
});
A alteração aqui é que mudamos setTimeout(done, 0) para setTimeout(next, 0) fazendo com que a função não saia imediatamente.
Executar os Testes
Nesta etapa, você reconstruirá o projeto vue-router-3.0.1 e testará o efeito corrigido.
- Re-execute o comando
npm run test:unitpara executar os testes unitários. - Após a correção, você deverá ver a seguinte saída:
Message:
Expected $.length = 3 to equal 5.
Expected $[3] = undefined to equal 4.
Expected $[4] = undefined to equal 5.
Isso indica que o teste async.spec.js foi corrigido com sucesso.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



