App Masters

App Masters

  • English
  • Português

›Testes

App Masters - Core

  • Início
  • Conteúdo

Backend

  • Adonis
  • Laravel
  • Livewire
  • Sequelize

Fundamentos de Javascript

  • Javascript Assíncrono
  • Typescript

Padrões de Projeto

  • Presentational Container Design Pattern

Frontend

  • Ant Design
  • Flexbox
  • Media Queries
  • React Hook Form
  • Redux
  • Redux-Saga
  • Redux-Thunk
  • Styled Components
  • Tailwind
  • TWA
  • Yup

Testes

  • Cypress
  • Detox
  • Jest

Ferramentas

  • Docker
  • nvm
  • Storybook
  • Visual Studio Code

CMS

  • Strapi

Jest

O que é

  • É um framework Javascript de testes.
  • Pode ser usado tanto no front-end quanto no back-end, sendo mais comum o uso no back-end.
  • Pode ser usado com: React, Node, React Native, e muita outras.
  • Desenvolvida pelo Facebook.

Como usar

  • Instale o Jest globalmente em seu computador utilizando o comando npm install jest --global.
  • Vá até a raiz do seu projeto e execute npm install --save-dev jest.
  • Crie uma pasta na raiz do projeto com o nome de __tests__.
  • E então inicialize o arquivo de configuração do Jest utilizando o comando jest --init.

    Na raiz será criado um novo arquivo jest.config.js. ( Acesse esse link para entender sobre cada configuração )

Escrevendo testes

  • Após o ambiente configurado já podemos começar a escrever os testes.

  • Para isso vamos criar um arquivo de exemplo dentro da pasta __tests__, no meu caso example.test.js.

    Obs: Não é necessário o arquivo terminar com .test.js (podendo ser .js somente), portanto é legal para mantermos o código organizado.

    // 'it' pode ser trocado por 'test'
    it("two plus two is four", () => {
      expect(2 + 2).toBe(4);
    });
    
  • Como é possível visualizar, de uma forma muito simples escrevemos testes triviais até testes mais complexos, como por exemplo, requisições assíncronas:

    // 'it' pode ser trocado por 'test'
    it("two plus two is four", async () => {
      try {
        const data = await fetchSomeData();
        //...//
      } catch (e) {
        expect(e).toMatch("error");
      }
    });
    
  • E se algum arquivo de teste tiver bastante funcionalidade diferentes para serem testadas, podemos usar o describe() para 'dividir' nossos testes em categorias:

    # __tests__/session.test.js
      describe('Authorization', () => {
        it('should authenticate with valid credentials', () => {
          //alguma logica
        });
    
        it('should not authenticate with invalid credentials', () => {
          //alguma logica
        });
      });
    
      describe('Registration', () => {
        it('should add an user in database', () => {
          //alguma logica
        });
    
        it('should not add an user in database ', () => {
          //alguma logica
        });
      });
    

Rodando os testes

  • Para rodar os testes de uma maneira bem simples, podemos adicionar um script no package.json com o nome de test.

    ...
      "scripts": {
        "test": "jest",
      },
    ...
    
  • E então rodar npm run test em um terminal na raiz do projeto, e pronto, testes funcionando!

Aprendendo mais

Material útil

  • Como sempre a documentação oficial é sempre um ótimo lugar para obter mais informações sobre.
  • Video muito bom sobre NodeJs + Jest + TDD.

Validando o conhecimento

  • É sempre muito importante colocar na prática o que aprendeu, pra solidificar e validar o conhecimento. Por isso nós recomendamos fortemente iniciar um projeto abordando esse assunto.
  • Pense em algo simples, algo como um login com autenticação, ou alguma coisa do tipo.

Possíveis problemas

...

← DetoxDocker →
  • O que é
  • Como usar
  • Escrevendo testes
  • Rodando os testes
  • Aprendendo mais
    • Material útil
    • Validando o conhecimento
  • Possíveis problemas
App Masters
App masters
Content
More
BlogGitHub
Copyright © 2022 App Masters