JasmineJS - Arquitetura BDD
Jasmine segue a estrutura do Behavioral Driven Development (BDD). Antes de aprender o princípio de funcionamento do Jasmine, deixe-nos saber o que é a estrutura do BDD.
O fluxograma a seguir descreve as diferentes fases da estrutura BDD.
Step 1 − Start
Nesta fase, prepararemos nosso ambiente para a aplicação Jasmine.
Step 2 − Write a failing test
Nesta etapa, escreveremos nosso primeiro caso de teste. É óbvio que este teste irá falhar porque não existe tal arquivo ou função a ser testado.
Step 3 − Write a code to make it pass
Nesta fase, prepararemos nosso arquivo ou função JavaScript que precisa ser testado. Esta fase é crucial, pois precisamos ter certeza de que todos os casos de teste que preparamos no estágio inicial serão bem-sucedidos.
Step 4 − Refactor
Refatorar é uma fase muito importante do modelo BDD em que precisamos preparar o máximo possível de casos de teste para esse aplicativo ou função em particular.
Step 5 − Stop
Se tudo estiver indo bem, seu aplicativo deve estar pronto e ativo. Portanto, podemos considerar esta etapa como o fim de nosso aplicativo BDD.
Exemplo
Agora, reunimos algum conhecimento sobre o princípio de funcionamento da estrutura do BDD. Vamos ver como Jasmine segue essa estrutura BDD na linha de testes de JavaScript.
Como mostra a imagem, precisamos testar Abc.js usando o framework Jasmine. SpecRunner.html é o arquivo de saída que levará Spec.js(Test case file ), Abc.js(file to be tested), LIB como uma entrada e executa todos os casos de teste presentes no arquivo de especificação e renderiza o resultado no navegador.
Lib - Esses são os arquivos JavaScript embutidos que serão úteis para testar diferentes funções e outros arquivos JavaScript usados em nosso projeto.
Spec.js(Test case file)- Este é o arquivo JavaScript que contém todos os casos de teste necessários para testar qualquer função ou arquivo JavaScript. Na metodologia BDD, vamos escrever o teste primeiro, portanto, este é o arquivo que precisa ser atualizado primeiro. Definitivamente, isso irá falhar, pois não existe tal arquivo ou função presente em nosso projeto que possa ser testado. Este arquivo pode ser refatorado vezes ilimitadas até que todas as funcionalidades sejam testadas.
Abc.js(File to be tested) - Este é o arquivo que contém suas funcionalidades que serão testadas na unidade usando Spec.js e arquivo Lib.
SpecRunner.html - SpecRunner.html é um arquivo html normal que renderizará a saída do teste de unidade com a ajuda de códigos JavaScript embutidos nele.