Testes

Tipos de Teste

testes de unidade

testes de integração

testes de interface

também atendem por testes de UI

e muito mais...

"e o que é cada um deles?"

Testes de Unidade

e não testes unitários, por quê?

atuam na unidade do software

qual a unidade de um software?

pequenos e muitos

 

"quem é o responsável?"

 

Testes de Unidade

router.get('/profiling', async (ctx) => {
  const { request: { query: { sex, age } }, bd } = ctx;
  
  const { isValid, reason } = validateProfilingQuery(sex, age);
  
  if (!isValid) {
    ctx.body = { reason };
    return;
  }
  
  const data = await db
    .collection('diseases')
    .find()
    .toArray();
  
  const filteredDiseases = filterDiseases(data, sex, age);
  
  ctx.body = { diseases: filteredDiseases };
});

"e quais são as unidades desse código?"

Testes de Unidade

 

validar query

recuperar do banco

filtrar por perfil

idade:[0, 120]

sexo:

["feminino", "masculino"]

sexo é string

idade é número

osteo:frax só para sexo:"feminino" idade:[45,*]

HIV:exame-sangue só para

idades:[15, 65]

mock do banco

Testes de Integração

 

banco não é consultado se validação falhar

dados do banco "encaixam" no filtro

para uma query e um determinado snapshot do estado, saída é a esperada

para uma query e um e um snapshot, resultado é dado dentro de um certo tempo

Made with Slides.com