Skip to content
Latchkey

O Que É um Test Harness?

Um test harness é o andaime de apoio, a configuração, os drivers, os stubs e a configuração, que permite que testes rodem contra o código sob teste.

Testes raramente rodam no vácuo. Um test harness é tudo que cerca o código sob teste para tornar o teste possível: o framework que executa os testes, as fixtures e test doubles que fornecem entradas, a configuração que amarra tudo e o reporting que captura resultados. É o aparato que segura o sujeito no lugar para que você possa examiná-lo.

O que um harness inclui

  • Um framework ou runner de execução de testes.
  • Setup e teardown para construir e limpar estado.
  • Test doubles, stubs e fixtures fornecendo entradas.
  • Configuração e reporting para capturar resultados.

Harness versus runner

Um test runner é uma parte de um harness, a peça que executa testes e reporta resultados. O harness é o conjunto mais amplo: o runner mais as fixtures, drivers, doubles e configuração que colocam o código sob teste em uma posição onde ele pode ser exercitado. O runner roda; o harness cerca.

Um exemplo rápido

O harness é o andaime em torno das verificações reais: ele levanta um servidor de teste, aponta o cliente para ele e o derruba depois.

Harness scaffolding around tests
beforeAll(() => server.start());
afterAll(() => server.stop());
// the actual tests run against this harness

Por que um bom harness importa

Um harness bem construído torna os testes fáceis de escrever, rápidos de rodar e confiáveis. Um ruim, com estado que vaza, setup lento ou configuração emaranhada, torna cada teste mais difícil e mais instável. Investir no harness compensa por toda a suíte, já que todo teste depende dele.

O harness no CI

No CI o harness deve subir de forma limpa em um runner novo toda vez: iniciar serviços, construir fixtures, configurar o ambiente e então derrubar tudo. Um runner limpo e isolado por job mantém esse setup reproduzível, e runners rápidos impedem que o setup do harness domine a execução. Essa isolação e velocidade é o que os runners Latchkey fornecem.

Principais conclusões

  • Um test harness é o andaime que permite que testes rodem.
  • Ele inclui o runner mais fixtures, doubles e configuração.
  • Um harness limpo em um runner isolado mantém os testes de CI reproduzíveis.

Guias relacionados