Módulo 2: Contrato da resposta
Os campos certos, com os tipos certos, no formato certo
Teoria
Status 200 não quer dizer "resposta correta". O contrato é a promessa de forma da resposta: quais campos existem, de que tipo, em que formato. Quebra de contrato é dos bugs mais chatos, porque o consumidor da API só descobre em produção.
- Campo presente:
'preco' in objouobj.preco !== undefined. - Tipo certo:
typeof obj.preco === 'number',typeof obj.nome === 'string',typeof obj.ativo === 'boolean',Array.isArray(obj.itens). - Formato: data
YYYY-MM-DD→/^\d{4}-\d{2}-\d{2}$/.test(obj.data_pedido). - Consistência entre rotas: o mesmo recurso deve ter o mesmo shape na lista e no item individual.
Atenção: um check vermelho aqui pode ser um
bug da API, não do seu teste. Se o enunciado descreve o contrato esperado e a
verificação falha, você achou algo.
Exemplos
Prática
Complete e clique Rodar. Alguns destes vão ficar vermelhos de propósito: leia o enunciado.
Área livre
Olhar de QA
Contrato é o tipo de defeito que a interface esconde e que explode meses depois, na máquina de outra pessoa. Quando um check de contrato ficar vermelho, resista ao reflexo de ajustar o teste até ele passar: se o enunciado descreve o contrato certo, você achou um defeito. E lembre-se de verificar o campo que veio a mais: um custo interno ou um hash de senha que escapou para a resposta pública é o achado mais valioso que essa verificação costuma produzir.