Saltar al contenido

Probando métodos de clase con pytest

Solución:

Todo lo que necesita hacer para probar un método de clase es crear una instancia de esa clase y llamar al método en esa instancia:

def test_action(self):
    sc = SuperCool()
    assert sc.action(1) == 1

Bueno, una forma es simplemente crear su objeto dentro del método de prueba e interactuar con él desde allí:

def test_action(self, x):
    o = SuperCool()
    assert o.action(2) == 4

Aparentemente puedes usar algo como el clásico setup y teardown prueba unitaria de estilo usando los métodos aquí: http://doc.pytest.org/en/latest/xunit_setup.html

No estoy 100% seguro de cómo se usan porque la documentación de pytest es terrible.

Editar: sí, aparentemente, si haces algo como

class TestSuperCool():
    def setup(self):
        self.sc = SuperCool()

    ... 

    # test using self.sc down here

Usaría cualquier accesorio solo para crear un entorno de prueba (como una conexión de base de datos) o parametrización de datos.

Si sus datos son relativamente triviales, puede definirlos dentro del caso de prueba:

def test_action_without_fixtures():
    sc = SuperCool()
    sc.element="snow"
    sc.melt()
    assert sc.element == 'water'

Ejemplo con parametrización:

@pytest.mark.parametrize("element, expected", [('snow', 'water'), ('tin', 'solder')])
def test_action_with_parametrization(element, expected):
    sc = SuperCool()
    sc.element = element
    sc.melt()
    assert sc.element == expected
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *