¿Qué es unittest en selenium Python?

¿Cuál es el significado de las líneas 3,16,17,18 y 19 que están resaltadas con *. ¿Alguien puede explicar lo que hacen? Soy nuevo en python y en la progtwigción.

import unittest from selenium import webdriver **class Iframe(unittest.TestCase):** def setUp(self): self.driver = webdriver.Firefox() def test_Iframe(self): driver = self.driver driver.maximize_window() driver.get('http://www.toolsqa.com/iframe-practice-page/') iframe1 = driver.find_element_by_id('IF1') driver.switch_to.frame(iframe1) driver.find_element_by_name('email').send_keys('xyz') driver.switch_to.default_content() list = driver.find_elements_by_tag_name('iframe') print(len(list)) **def tearDown(self): self.driver.quit()** **if __name__ == '__main__': unittest.main()** 

Como has elegido para usar la prueba de unidad de Python, aquí está la información relevante:

  • import unittest : debe importar el módulo de prueba de unidad requerido como una medida obligatoria.
  • class Iframe(unittest.TestCase): :: la clase testcase se hereda de unittest.TestCase . Heredarse de la clase TestCase es la manera de decirle al módulo de prueba de unidad que se trata de un caso de prueba.
  • def setUp(self): el setUp es la parte de la inicialización y este método se llamará antes de cada función de prueba que escribirá en esta clase de caso de prueba.
  • def test_Iframe(self): :: este es el método real de testcase . El método testcase siempre debe comenzar con la prueba de caracteres.
  • def tearDown(self): :: el método tearDown se llamará después de cada método de prueba. Este es el método para hacer todas las acciones de limpieza.
  • if __name__ == '__main__': Esta línea establece la variable __name__ para que tenga un valor "__main__" . Si este archivo se está importando de otro módulo, __name__ se establecerá en el nombre del otro módulo. Encontrará una discusión detallada en ¿Qué hace si nombre == “ principal ”: hacer?
  • unittest.main() : Invoca las funciones de prueba del módulo configurado.

Nota A : Para obtener más detalles, consulte Uso de Selenium para escribir pruebas y Ver el ejemplo.


Nota B : Consulte el __name__ de un módulo para obtener detalles completos.


Porque yo

El primer argumento de cada método de clase, incluido init es siempre una referencia a la instancia actual de la clase . Por convención, este argumento siempre se llama self. En el método init , self se refiere al objeto recién creado, mientras que en otros métodos de clase, se refiere a la instancia cuyo método fue llamado.

Trivialidades

La auto variable en python explicada

Solo tres líneas en este código están resaltadas con un *, pero esto es lo que significan:

Primera linea:

  class Iframe(unittest.TestCase): 

Esto es declarar la clase para las funciones ( test_Iframe y tearDown ) que siguen. Una clase se utiliza para crear “objetos” en la progtwigción orientada a objetos . Piense en la clase como la abstracción de datos / procedimientos, mientras que el objeto es la instancia particular de la clase.

Línea siguiente:

 def tearDown(self): self.driver.quit() 

Esta sección primero declara una función con la palabra clave def , y la función sale del controlador, que se estableció como:

 driver = self.driver driver.maximize_window() driver.get('http://www.toolsqa.com/iframe-practice-page/') 

en la función test_Iframe()

Línea final:

 if __name__ == '__main__': unittest.main() 

Esta sección simplemente ejecuta la función principal del progtwig. Más detalles sobre esto se pueden encontrar aquí .

Déjame saber si tienes más preguntas!