Projeto para o curso de Protractor da Escola TAT
Uma nota sobre arquitetura de software
Conteúdo da aula
- Simplicidade
- Organização
- Legibilidade
- Reutilização
- Manutenção
- Evolução
Bootstrap do projeto de testes end-to-end
Conteúdo da aula
- Clone do projeto (git clone [email protected]:wlsf82/curso-protractor-tat.git)
- Inicialização de um projeto Node.js (npm init -y)
- Criação do arquivo .gitignore (.DS_Store, node_modules/)
- Instalação do Protractor, protractor-helper e standardjs (npm install protractor protractor-helper standardjs —save-dev)
- Estrutura de diretórios do projeto de testes e2e (configurations/, page-objects/, page-objects/components/, utils/, specs/)
- Documentação oficial do Protractor (http://protractortest.org)
Arquivos de configuração
Conteúdo da aula
- utils/createConfig.js
- A importância do jasmineNodeOpts.random = true
- configurations/chromeConfig.js
- configurations/firefoxConfig.js
Scripts do arquivo package.json
Conteúdo da aula
- lint
- lint:fix
- package.json (standard.globals)
- pretest
- test
- test:chrome
- test:firefox
Criando o primeiro teste
Conteúdo da aula
- home.spec.js
- Tipagem dos métodos do protractor-helper
- Documentação oficial do protractor-helper (https://github.com/wlsf82/protractor-helper/blob/master/README.md)
- page-objects/home.js
- components/tags.js
Testando a página de uma tag aleatória
Conteúdo da aula
- tag.spec.js
- page-objects/tag.js
- components/destinations.js
- utils/randomNumberBewtweenOneAndN.js
Testando a página de uma destination aleatória
Conteúdo da aula
- destination.spec.js
- page-objects/destination.js
- components/destination.js
- utils/randomNumberBewtweenOneAndN.js
Testando o básico da página de edição de uma destination aleatória
Conteúdo da aula
- editDestination.spec.js
- page-objects/editDestination.js
- components/destination.js
- components/form.js
- utils/randomNumberBewtweenOneAndN.js
Testando as validações do formulário da página de edição de uma destination aleatória
Conteúdo da aula
- Validação de número mínimo de caracteres
Testando a submissão com sucesso do formulário da página de edição de uma destination aleatória
Conteúdo da aula
- Instalando a biblioteca faker (npm install faker —save-dev)
- O teste propriamente dito
Testando o header de uma página aleatória
Conteúdo da aula
- Como enxugar os testes e ainda manter a cobertura
- utils/pageSorter.js
Executando os scripts do package.json via atalhos do Visual Studio Code
Conteúdo da aula
- lint
- lint:fix
- pretest
- test
- test:chrome
- test:firefox
Simulando falhas
Conteúdo da aula
- Simulando a falha em um ou mais testes
- Mensagens de erro do protractor-helper (https://github.com/wlsf82/protractor-helper#example-of-a-test-failure-when-using-such-methods-as-expectations)
Integração contínua
Conteúdo da aula
- Colocando lint e testes para rodar no CI do GitHub
Últimos ajustes
Conteúdo da aula
- Últimos ajustes no arquivo package.json (description, main, keywords, repository, author, license)
- Documentando o projeto (README.md)
- Título e descrição
- Badge
- Pré-requisitos (node, npm, chrome, firefox)
- Instalação
- Executando os testes e sub-seções
- Footer
Revisão do projeto
Conteúdo da aula
- Revisão final do projeto (estrutura de arquivos e diretórios) e suas relações com uma arquitetura limpa
- Possíveis evoluções