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
Jest
globalmente 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
Jest
utilizando 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.js
somente), 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.json
com o nome detest
.... "scripts": { "test": "jest", }, ...
E então rodar
npm run test
em 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
...