typestar

parametrize en Python

Un solo cuerpo de prueba, una fila de casos y un resultado aparte por cada uno.

import pytest


def wpm(letras, segundos):
    return (letras / 5) / (segundos / 60)


@pytest.mark.parametrize("letras,segundos,esperado", [
    (400, 60, 80.0),
    (200, 60, 40.0),
    (400, 30, 160.0),
])
def test_wpm(letras, segundos, esperado):
    assert wpm(letras, segundos) == pytest.approx(esperado)


@pytest.mark.parametrize("letras", [0, 100])
@pytest.mark.parametrize("segundos", [30, 60])
def test_nunca_negativo(letras, segundos):
    assert wpm(letras, segundos) >= 0

Cómo funciona

  1. Los ids del reporte salen de los parámetros.
  2. Varios parámetros se multiplican en una cuadrícula.
  3. Reemplaza el bucle dentro de una prueba, que esconde fallas.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
461
Tokens
133
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 3 de 3 en Escribir pruebas; paso 3 de 9 en Testing con pytest.

← Anterior Siguiente →