typestar

Pruebas por tabla en Go

El estilo de la casa en Go: un slice de casos, un subtest cada uno.

func Stars(tpm, target int) int {
    switch {
    case tpm >= target:
        return 3
    case tpm >= target*8/10:
        return 2
    default:
        return 1
    }
}

func TestStars(t *testing.T) {
    cases := []struct {
        name   string
        tpm    int
        target int
        want   int
    }{
        {"at the bar", 100, 100, 3},
        {"just under", 85, 100, 2},
        {"slow", 40, 100, 1},
    }

    for _, c := range cases {
        t.Run(c.name, func(t *testing.T) {
            if got := Stars(c.tpm, c.target); got != c.want {
                t.Errorf("Stars(%d, %d) = %d, want %d",
                    c.tpm, c.target, got, c.want)
            }
        })
    }
}

Cómo funciona

  1. Cada caso es un struct con un nombre y los datos.
  2. t.Run da a cada caso su propio nombre en la salida.
  3. Agregar un caso es una línea, no una función.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
32
Caracteres a escribir
501
Tokens
163
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →