Este projeto é um exemplo de como configurar um aplicativo React Native com Expo, utilizando o Jest para testes unitários e integração. O projeto está configurado para utilizar as bibliotecas @testing-library/react-native
e jest-expo
.
Antes de iniciar, certifique-se de ter o Node.js instalado em sua máquina. Além disso, é recomendado ter o Expo CLI instalado globalmente.
-
Criação do Projeto
Para criar um novo projeto Expo, execute o seguinte comando:
npx create-expo-app Jest --template
-
Instalar Dependências
As dependências listadas no projeto incluem:
{ "dependencies": { "expo": "~51.0.28", "expo-status-bar": "~1.12.1", "jest": "^29.4.0", "jest-expo": "~51.0.4", "react": "18.2.0", "react-native": "0.74.5" }, "devDependencies": { "@babel/core": "^7.20.0", "@testing-library/jest-native": "^5.4.3", "@testing-library/react-native": "^12.6.0", "@types/jest": "^29.5.12", "@types/react": "~18.2.45", "typescript": "^5.1.3" } }
Execute o seguinte comando para instalar todas as dependências:
npm install
-
Iniciar o Projeto
Para iniciar o servidor de desenvolvimento do Expo, use:
npm start
-
Executar o Projeto em Diferentes Plataformas
Para executar o projeto em um dispositivo Android, iOS ou na Web, utilize os seguintes comandos:
-
Android:
npm run android
-
iOS:
npm run ios
-
Web:
npm run web
-
-
Executar Testes
O projeto está configurado para utilizar o Jest como framework de testes. Para rodar os testes, utilize o comando:
npm test
A configuração do Jest inclui um preset específico para projetos Expo e um padrão de transformação para ignorar alguns módulos durante os testes:
"jest": { "preset": "jest-expo", "transformIgnorePatterns": [ "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)" ], "setupFilesAfterEnv": [ "@testing-library/jest-native/extend-expect" ] }
App.js
: Arquivo principal onde a lógica da aplicação é implementada.package.json
: Contém todas as dependências, scripts e configuração do Jest.node_modules/
: Diretório que contém todas as bibliotecas instaladas.ios/
eandroid/
: Diretórios gerados após o prebuild, contendo os arquivos de configuração nativa para iOS e Android.
Contribuições são bem-vindas! Sinta-se à vontade para abrir um Pull Request
ou relatar um Issue
.
Este projeto está licenciado sob a MIT License. Consulte o arquivo LICENSE
para obter mais informações.