Que nossa aplicação continue funcionando independentemente do número de novas funcionalidades e do número de devs no time
Testam funcionalidades especificas de nossa aplicação e precisa sem função puras.
Coisa muito isoladas do código, não depende de outra parte da aplicação, não faz chamada a API e nem tem efeito colaterais
Dados os mesmos parâmetros sempre terão os mesmos resultados
Bom usar na hora do TDD
Testam uma funcionalidade completa, passando par várias camadas da aplicação,
Testes que simulam a ação do usuário dentro da nossa aplicação
Feito geralmente no front-end e não nas API
Desenvolvimento dirigido a testes
Se cria os testes antes das funcionalidades especificando como ela deve se comportar
Instalando
yarn add -D jest
Iniciando
yarn jest --init
√ Would you like to use Jest when running "test" script in "package.json"? ... yes
√ Would you like to use Typescript for the configuration file? ... no
√ Choose the test environment that will be used for testing » node
√ Do you want Jest to add coverage reports? ... no
√ Which provider should be used to instrument code for coverage? » babel
√ Automatically clear mock calls and instances between every test? ... yes
yarn add ts-jest -D
yarn add @types/jest -D
test('Sum two number', () => {
expect(1 + 2).toBe(3);
});
yarn test
Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 6.686 s, estimated 16 s Ran all test suites. Done in 10.38s.
describe('CreateAppointment', () => {
it('Should be able to create a new appointment', () => {
expect(1 + 2).toBe(3);
});
});
yarn test
CreateAppointment √ Should be able to create a new appointment (2 ms)
Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 6.727 s, estimated 7 s Ran all test suites. Done in 10.54s.