typestar

Fixtures en Python

Un fixture construye lo que la prueba necesita y lo desmonta después.

import pytest


class Sesion:
    def __init__(self):
        self.runs = []
        self.closed = False

    def record(self, tpm):
        self.runs.append(tpm)

    def close(self):
        self.closed = True


@pytest.fixture
def sesion():
    creada = Sesion()
    yield creada
    creada.close()


@pytest.fixture(scope="module")
def objetivo():
    return 90


def test_registra_intentos(sesion, objetivo):
    sesion.record(104)
    assert sesion.runs == [104]
    assert sesion.runs[0] > objetivo

Cómo funciona

  1. Pedirlo por nombre es la forma en que una prueba lo solicita.
  2. Un fixture con yield limpia después de que la prueba retorna.
  3. scope decide con qué frecuencia se reconstruye.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
31
Caracteres a escribir
433
Tokens
117
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 67 segundos.

Escribe este fragmento

Paso 1 de 2 en Fixtures; paso 4 de 9 en Testing con pytest.

← Anterior Siguiente →