Pregunta Explicar los métodos "setUp" y "tearDown" de Python utilizados en los casos de prueba


¿Alguien puede explicar el uso de Python? setUp y tearDown métodos al escribir casos de prueba aparte de eso setUp se llama inmediatamente antes de llamar al método de prueba y tearDown se llama inmediatamente después de haber sido llamado?


54
2017-07-28 05:59


origen


Respuestas:


En general, agrega todos los pasos previos necesarios para configurar y todos los pasos de limpieza para tearDown.

Puedes leer más con ejemplos aquí.

Cuando se define un método setUp (), el corredor de prueba ejecutará ese método   antes de cada prueba. Del mismo modo, si se define un método tearDown (), el   el corredor de prueba invocará ese método después de cada prueba.

Por ejemplo, tiene una prueba que requiere que existan elementos, o un estado determinado, por lo que coloca estas acciones (creación de instancias de objetos, inicialización de bases de datos, preparación de reglas, etc.) en la configuración.

Además, como usted sabe, cada prueba debe detenerse en el lugar donde se inició, esto significa que debemos restaurar el estado de la aplicación a su estado inicial, por ejemplo, cerrar archivos, conexiones, eliminar elementos recién creados, devolver llamadas, etc. los pasos deben ser incluidos en el tearDown.

Entonces, la idea es que la prueba misma contenga solo las acciones que se realizarán en el objeto de prueba para obtener el resultado, mientras que setUp y tearDown son los métodos que le ayudarán a dejar el código de prueba limpio y flexible.

Puede crear un setUp y un TearDown para un conjunto de pruebas y definirlas en una clase para padres, por lo que sería fácil para usted respaldar tales pruebas y actualizar preparaciones y limpiezas comunes.

Si estás buscando un ejemplo fácil por favor utiliza el siguiente enlace con un ejemplo


49
2017-07-28 06:08



Puede usarlos para factorizar el código común a todas las pruebas en el conjunto de pruebas.

Si tiene muchos códigos repetidos en sus pruebas, puede acortarlos moviendo este código a setUp / tearDown.

Puede usar esto para crear datos de prueba (por ejemplo, configurar falsificaciones / simulaciones) o anular funciones con falsificaciones.

Si está realizando pruebas de integración, puede usar las precondiciones ambientales de verificación en setUp, y omitir la prueba si algo no está configurado correctamente.

Por ejemplo:

class TurretTest(unittest.TestCase):

    def setUp(self):
        self.turret_factory = TurretFactory()
        self.turret = self.turret_factory.CreateTurret()

    def test_turret_is_on_by_default(self):
        self.assertEquals(True, self.turret.is_on())

    def test_turret_turns_can_be_turned_off(self):
        self.turret.turn_off()
        self.assertEquals(False, self.turret.is_on())

35
2017-07-28 06:02



Supongamos que tiene una suite con 10 pruebas. 8 de las pruebas comparten el mismo código de configuración / desmontaje. Los otros 2 no.

configuración y desmontaje le dan una buena manera de refactorizar esas 8 pruebas. ¿Ahora qué haces con las otras 2 pruebas? Los moverías a otro testcase / suite. Entonces, usar setup y desmontaje también ayuda a dar una forma natural de dividir las pruebas en casos / suites


4
2017-07-28 06:08