Asserções com std.testing
expect, expectEqual e funções relacionadas.
Asserções com std.testing é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.
O namespace testing
Os auxiliares de asserção do Zig ficam em std.testing. Importe-o com um nome curto para que cada verificação fique clara dentro dos seus blocos de teste.
const testing = std.testing;expect para valores booleanos
O auxiliar mais simples é expect. Ele recebe um booleano e faz o teste falhar quando essa condição é falsa.
try testing.expect(value > 0);Os auxiliares retornam erros
Todo auxiliar de teste retorna um erro quando falha, então você sempre o prefixa com try. É isso que faz o teste parar e informar o problema.
expectEqual para valores
Para comparar dois valores, use expectEqual. Ele verifica a igualdade e, em caso de falha, exibe tanto o valor esperado quanto o valor real.
try testing.expectEqual(5, add(2, 3));O valor esperado vem primeiro
Com expectEqual, o primeiro argumento é o valor esperado e o segundo é o que seu código produziu. A ordem define a mensagem de falha.
try testing.expectEqual(42, result);Comparando fatias
Duas fatias são iguais quando seus elementos correspondem, não quando seus ponteiros são iguais. Use expectEqualSlices e informe o tipo dos elementos.
try testing.expectEqualSlices(u8, "hi", out);Comparando strings
Para texto, expectEqualStrings compara duas fatias de bytes e exibe uma diferença legível quando elas divergem, o que é perfeito para verificar saídas.
try testing.expectEqualStrings("ok", msg);Fazendo asserção sobre um erro
Às vezes, uma chamada deve falhar. Envolva-a em expectError para verificar que ela retorna um erro específico, e não um valor.
try testing.expectError(error.Bad, parse("x"));Floats aproximados
Valores de ponto flutuante raramente coincidem exatamente. Use expectApproxEqAbs com uma pequena tolerância para que diferenças mínimas de arredondamento não façam seu teste falhar.
try testing.expectApproxEqAbs(1.0, x, 0.001);Leia a saída da falha
Quando uma asserção falha, o Zig exibe os valores esperado e real diretamente no relatório. Essa diferença geralmente aponta diretamente para o erro.
Escolha o auxiliar correto
Combine o auxiliar com os dados: expectEqual para escalares, auxiliares de fatias e strings para sequências e expectError para o caminho de falha.
Verificação rápida
Você precisa verificar que dois valores de texto são exatamente iguais em um teste. Qual auxiliar é mais adequado?
Recapitulação
Você aprendeu sobre o conjunto de ferramentas std.testing: expect, expectEqual, verificações de fatias e strings, além de expectError. Cada um precisa de try antes. ✅
Perguntas Frequentes
A aula “Asserções com std.testing” é grátis?
Sim — o texto completo de “Asserções com std.testing” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.
O que vou aprender em “Asserções com std.testing”?
expect, expectEqual e funções relacionadas. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Zig Academy?
Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Asserções com std.testing”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Zig Academy?
Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Escrevendo blocos test
- Asserções com std.testing
- O alocador de testes detecta vazamentos
- Executando e filtrando testes