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
Jestglobalmente em seu computador utilizando o comandonpm 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
Jestutilizando o comandojest --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 casoexample.test.js.Obs: Não é necessário o arquivo terminar com
.test.js(podendo ser.jssomente), 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.jsoncom o nome detest.... "scripts": { "test": "jest", }, ...E então rodar
npm run testem 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
...