https://github.com/janascher/calculadora-unit-tests-iterasys
Projeto de calculadora com testes unitários em Jest, desenvolvido durante o curso "Formação em Teste de Software" da Iterasys, demonstrando TDD e DDT.
https://github.com/janascher/calculadora-unit-tests-iterasys
jest unit-testing
Last synced: 2 months ago
JSON representation
Projeto de calculadora com testes unitários em Jest, desenvolvido durante o curso "Formação em Teste de Software" da Iterasys, demonstrando TDD e DDT.
- Host: GitHub
- URL: https://github.com/janascher/calculadora-unit-tests-iterasys
- Owner: janascher
- Created: 2025-03-07T13:55:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-07T14:09:57.000Z (over 1 year ago)
- Last Synced: 2025-03-07T15:24:08.003Z (over 1 year ago)
- Topics: jest, unit-testing
- Language: JavaScript
- Homepage:
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
🧪🧮 Projeto de Calculadora com Testes Unitários em Jest
## 🧐 Descrição
Este projeto foi desenvolvido durante as aulas do curso "Formação em Teste de Software" da [Iterasys](https://iterasys.com.br/pt), ministradas pelo professor José Correia. Ele visa demonstrar a aplicação de testes unitários utilizando Jest, abordando tanto testes simples quanto testes orientados por dados (DDT), onde a massa de teste é definida em formato JSON.
## 📚 Aprendizados
Durante as aulas e a construção deste projeto, foram abordados os seguintes tópicos:
- **Testes Unitários com Jest:** criação de testes unitários para validar o funcionamento de funções individuais (soma, subtração, multiplicação e divisão), utilizando a biblioteca Jest.
- **TDD (Test Driven Development):** prática de desenvolvimento orientado por testes, onde os testes são escritos antes da implementação do código, garantindo que cada funcionalidade seja testada desde o início.
- **DDT (Data Driven Testing):** implementação de testes dirigidos por dados, utilizando massa de teste em formato JSON para validar diferentes cenários com o mesmo código de teste, aumentando a cobertura e a eficiência dos testes.
- **Estrutura de Projetos de Teste:** organização de pastas e arquivos para um projeto de testes unitários, incluindo a separação de testes, código-fonte e massa de teste.
- **Metodologia AAA (Arrange, Act, Assert):** estruturação dos testes unitários seguindo a metodologia AAA (Arrange, Act, Assert) para melhor organização, legibilidade e manutenção do código de teste.
## 🚀 Funcionalidades Testadas
As seguintes funcionalidades da calculadora foram testadas:
- **Soma:** adição de dois números.
- **Subtração:** subtração de dois números.
- **Multiplicação:** multiplicação de dois números.
- **Divisão:** divisão de dois números, incluindo o tratamento de divisão por zero.
## 📚 Tecnologias Utilizadas
- **IDE:** VS Code
- **Linguagem:** JavaScript (Node.js)
- **Teste de Unidade:** Jest
- **Gerenciador de Pacotes:** npm
- **Ferramenta de Formatação:** Prettier
## ⚙️ Configuração do Ambiente
### Definir a versão do Node.js (caso necessário)
Certifique-se de que você está usando a versão correta do Node.js. Caso necessário, use o NVM para definir a versão:
```sh
nvm use 22.14.0
```
Alternativamente, crie um arquivo `.nvmrc` na raiz do projeto para especificar a versão do Node.js:
```sh
echo "22.14.0" > .nvmrc
```
### Instalar o Jest
Instale o Jest usando o comando:
```sh
npm i jest
```
**Observação:** Embora o comando acima instale o Jest como uma dependência regular, é uma boa prática usar `--save-dev` para pacotes de desenvolvimento como o Jest, pois isso os adiciona às `devDependencies` no `package.json`, indicando que são necessários apenas durante o desenvolvimento. No entanto, durante as aulas, o comando `npm i jest` foi utilizado pelo professor.
## 🧪 Executar os Testes
Para executar os testes unitários, você pode usar os seguintes comandos:
- **Execução Padrão:**
```sh
npx jest
```
- **Execução com Saída Detalhada (Verbose):**
```sh
npx jest --verbose
```
O comando `--verbose` fornece uma saída mais detalhada durante a execução dos testes, o que pode ser útil para depuração ou para entender melhor o fluxo dos testes.
## 🦸🏻♀️ Autor