Café y Código

3. Aserciones

assert en pytest

pytest reutiliza la palabra clave assert de Python. Si la expresión es falsa, el test falla y pytest intenta mostrar valores intermedios de forma legible.

assert con mensaje
PYTHON
1 def test_texto():
2 esperado = "pytest"
3 obtenido = "py" + "test"
4 assert esperado == obtenido, "el mensaje opcional ayuda cuando falla"

Igualdad e identidad

  • == compara valor (muy usado).
  • is compara identidad (mismo objeto en memoria); usalo con None, True, False cuando corresponda.
is None
PYTHON
1 def test_none():
2 x = None
3 assert x is None

Contenidos y colecciones

membership y dict
PYTHON
1 def test_lista_y_substring():
2 assert "hola" in "hola mundo"
3 assert 3 in [1, 2, 3]
4 assert {"a": 1} == {"a": 1}

Ejercicio 1

Escribí un test que falle a propósito con un mensaje claro: compará 1 + 1 con 3 y pasá un segundo argumento a assert.

Ver solución propuesta
PYTHON
1 def test_falla_docente():
2 assert 1 + 1 == 3, "sabemos que 1+1 no es 3; este test demuestra el mensaje"

Ejercicio 2

Usá assert all(x > 0 for x in [1, 2, 3]) o una aserción equivalente para comprobar que todos los números son positivos.

Ver solución propuesta
PYTHON
1 def test_todos_positivos():
2 nums = [1, 2, 3]
3 assert all(n > 0 for n in nums)

Ponte a prueba

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.