Giter VIP home page Giter VIP logo

project-jest's Introduction

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


Sumário


Habilidades

Nesse projeto, você será capaz de:

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

Entregáveis

O que deverá ser desenvolvido

Neste projeto, você irá implementar testes utilizando o Jest para verificar se uma série de funções estão funcionando corretamente. Você colocará em prática todo o conteúdo que aprendeu sobre Jest assíncrono e Mocks aplicados a testes em Javascript.


Desenvolvimento

Este repositório contém a estrutura de pastas e arquivos que contém funções que deverão ser testadas por você. Após clonar o projeto e criar sua branch de trabalho, você poderá começar o desenvolvimentos dos testes.

Lembre-se de não modificar os arquivos da pasta src, o objetivo do projeto é que você trabalhe apenas com a pasta test.

Para testar se os requisitos estão passando, você pode executar os testes na sua máquina com o comando npm test nome-arquivo.test. É muito importante que você não modifique nenhum arquivo da pasta src. Alterá-los pode fazer com que o seu requisito não passe no avaliador automático.

Lembre-se também de não modificar os describes dos tests na pasta test. Alterá-los pode fazer com que o seu requisito não passe no avaliador automático.

Data de entrega

  • Projeto individual.

  • Será um dia de projeto.

  • Data de entrega para avaliação final do projeto: 22/02/2021 - 14:00h.


Instruções para entregar seu projeto:

Antes de começar a desenvolver

  1. Clone o repositório
  • git clone https://github.com/tryber/sd-09-project-jest.git.
  • Entre na pasta do repositório que você acabou de clonar:
    • cd sd-09-project-jest
  1. Crie uma branch a partir da branch master
  • Verifique que você está na branch master
    • Exemplo: git branch
  • Se não estiver, mude para a branch master
    • Exemplo: git checkout master
  • Agora, crie uma branch onde você vai guardar os commits do seu projeto
    • Você deve criar uma branch no seguinte formato: nome-de-usuario-nome-do-projeto
    • Exemplo: git checkout -b joaozinho-project-jest
  • Agora, crie uma branch onde você vai guardar os commits do seu projeto

Durante o desenvolvimento

  • Faça commits das alterações que você fizer no código regularmente

  • Lembre-se de sempre após um (ou alguns) commits atualizar o repositório remoto

  • Os comandos que você utilizará com mais frequência são:

    1. git status (para verificar o que está em vermelho - fora do stage - e o que está em verde - no stage)
    2. git add (para adicionar arquivos ao stage do Git)
    3. git commit (para criar um commit com os arquivos que estão no stage do Git)
    4. git push -u nome-da-branch (para enviar o commit para o repositório remoto na primeira vez que fizer o push de uma nova branch)
    5. git push (para enviar o commit para o repositório remoto após o passo anterior)

Depois de terminar o desenvolvimento (opcional)

Para "entregar" seu projeto, siga os passos a seguir:

  • Vá até a página DO SEU Pull Request, adicione a label de "code-review" e marque seus colegas
    • No menu à direita, clique no link "Labels" e escolha a label code-review
    • No menu à direita, clique no link "Assignees" e escolha o seu usuário
    • No menu à direita, clique no link "Reviewers" e digite students, selecione o time tryber/students-sd-09

Revisando um pull request

Use o conteúdo sobre Code Review para te ajudar a revisar os Pull Requests.

#VQV 🚀


Como desenvolver

Code Climate

Para garantir a qualidade do seu código de forma a tê-lo mais legível, de mais fácil manutenção e seguindo as boas práticas de desenvolvimento nós utilizamos neste projeto o Code Climate. Para rodar o Code Climate localmente no seu projeto, execute o comando abaixo:

codeclimate analyze
  • PULL REQUESTS COM ISSUES NO CODE CLIMATE NÃO SERÃO AVALIADAS, ATENTE-SE PARA RESOLVÊ-LAS ANTES DE FINALIZAR O DESENVOLVIMENTO!

Requisitos do projeto

Lista de requisitos

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 um 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: '[email protected]',
  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.


Avisos Finais

O avaliador automático não necessariamente avalia seu projeto na ordem em que os requisitos aparecem no readme. Isso acontece para deixar o processo de avaliação mais rápido. Então, não se assuste se isso acontecer, ok?


project-jest's People

Contributors

jeanpsv avatar muriloroque avatar maurice604 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.