/jest

Neste projeto, foram implementados testes utilizando o Jest para verificar se uma série de funções estão funcionando corretamente.

Primary LanguageJavaScript

Informações Gerais

Projeto desenvolvido durante formação em desenvolvedor Web Full Stack pela Trybe.


Boas vindas ao repositório do projeto de Jest Assíncrono e Mocking!

Neste projeto, foram implementados testes utilizando o Jest para verificar se uma série de funções estão funcionando corretamente. Foi colocado em prática todo o conteúdo aprendido sobre Jest assíncrono e Mocks aplicados a testes em Javascript.

Lembrando que esta aplicação corresponde aos meus esforços para melhorar minhas hard skills e soft skills, sinta-se à vontade para explorá-la! Feedbacks construtivos são sempre bem vindos!

Abaixo você poderá encontrar mais informações técnicas sobre este projeto.


SUMÁRIO


Habilidades

Nesse projeto, fui capaz de:

  • Escrever testes para funções assíncronas;
  • Aplicar os seus conhecimentos acerca de testes utilizando o Jest;
  • "Mockar" funções;
  • "Mockar" APIs;

Instruções para fazer o fork do repositório

  1. Faça o fork do repositório

  2. Instale as dependências do projeto

  • Instale as dependências:
    • npm install

Informações do projeto

Linter

Para garantir a qualidade do código de forma a tê-lo mais legível, de mais fácil manutenção e seguindo as boas práticas de desenvolvimento foi utilizado neste projeto o linter ESLint.


Desafios

1 - Crie testes para uma função assíncrona

Complete os testes do arquivo test/asyncJest.spec.js para que funcionem com código assíncrono.

2 - Crie um "Mock" no arquivo test/mockFunctions.spec.js

Crie mock functions no arquivo test/mockFunctions.spec.js para que os testes mockados 'sobrescrevam' o código definido na pasta src. A idéia é que as funções criadas a partir do Jest tenham prioridade na sua execução.

3 - Crie um Mock para o retorno da API

Crie uma API mock no arquivo test/mockApi.spec.js para que os testes do Jest utilizem retornos de API fixos e independentes de requisições.

Exemplo de resposta da API randomuser.me:

{
  gender: 'female',
  name: { title: 'Ms', first: 'Deborah', last: 'Hanson' },
  location: {
    street: { number: 1299, name: 'Rochestown Road' },
    city: 'Birr',
    state: 'Wicklow',
    country: 'Ireland',
    postcode: 16223,
    coordinates: { latitude: '26.2451', longitude: '45.2995' },
    timezone: {
      offset: '+5:30',
      description: 'Bombay, Calcutta, Madras, New Delhi'
    }
  },
  email: 'deborah.hanson@example.com',
  login: {
    uuid: '45db2b1f-1c9a-4a80-9572-e46614f86c30',
    username: 'bluewolf366',
    password: 'iverson3',
    salt: 'XKOOGc2x',
    md5: '8cb7b4686f3869247b3ed189de780ea6',
    sha1: 'c24641f415cf36f4494ea4007fb3d77b47a6aad5',
    sha256: 'a7bdd079ead0adf21f30cee5b94e5581a9fa0d5fc8b3c1881dbc864dabc55a80'
  },
  dob: { date: '1965-10-01T06:35:49.694Z', age: 55 },
  registered: { date: '2009-02-11T05:48:39.772Z', age: 11 },
  phone: '021-953-7205',
  cell: '081-160-6277',
  id: { name: 'PPS', value: '0109675T' },
  picture: {
    large: 'https://randomuser.me/api/portraits/women/7.jpg',
    medium: 'https://randomuser.me/api/portraits/med/women/7.jpg',
    thumbnail: 'https://randomuser.me/api/portraits/thumb/women/7.jpg'
  },
  nat: 'IE'
}

4 - Crie funções no arquivo test/setupTeardown.spec.js

Intercale funções entre os testes definidos no arquivo test/setupTeardown.spec.js.