typestar

Helpers y limpieza en Go

t.Helper corrige la línea reportada; t.Cleanup reemplaza el teardown.

func mustEqual(t *testing.T, got, want string) {
    t.Helper() // señala la línea de quien llama, no esta
    if got != want {
        t.Fatalf("got %q, want %q", got, want)
    }
}

func TestWithFixture(t *testing.T) {
    dir := t.TempDir()
    path := filepath.Join(dir, "runs.txt")

    if err := os.WriteFile(path, []byte("104\n"), 0o600); err != nil {
        t.Fatalf("write: %v", err)
    }
    t.Cleanup(func() { t.Log("finished with", path) })

    data, err := os.ReadFile(path)
    if err != nil {
        t.Fatalf("read: %v", err)
    }
    mustEqual(t, strings.TrimSpace(string(data)), "104")
}

Cómo funciona

  1. Sin t.Helper, las fallas apuntan al helper, no a la prueba.
  2. t.Cleanup corre en orden inverso al terminar la prueba.
  3. t.TempDir se elimina por ti cuando la prueba acaba.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
537
Tokens
157
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 94 segundos.

Escribe este fragmento

Paso 3 de 4 en Escribir pruebas; paso 3 de 13 en Pruebas.

← Anterior Siguiente →