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?"
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?"
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?"
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
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