La clausula IF y la declaración ASSERT cumplen funciones diferentes, pero similares. El objetivo de este artículo es establecer de una vez por todas cuándo usar “IF” y cuándo usar “ASSERT” en nuestros casos de prueba. Habrán situaciones en las que esta decisión no pueda ser tan clara, pero con estas reglas generales, podremos ser consistentes a lo largo de nuestras pruebas.
En primer lugar, debemos establecer qué es una cláusula “IF” y qué hace una declaración “ASSERT”. Tenga en cuenta que usaremos Python 3 como nuestro lenguaje para este artículo.
Una clausula “If” es una condición que puede ser True o False. Esos son los valores que puede tener. Y son usualemente escritos de la siguiente manera.
if condition: statementBlock
Dependiendo del resultado de esta condición, se ejecuta una instrucción o acción.
Una declaración “Assert” es una condición que también puede ser True o False. Espera… Eso es lo mismo que dijimos antes de la condición “If” ¿Cuál es la diferencia? Profundicemos más a fondo.
Usualmente, una declaración “Assert” se escribiría de esta manera:
assert condition, "Message"
Si esta condición es True, el código procede. Si la condición es False, la ejecución se detiene y obtenemos un error con el Mensaje que especificamos en la aserción. Esto es donde, funcionalmente, las diferencias empiezan. Si la condición de una clausula “If” es falsa, el código procede con el comportamiento previsto que codificamos para ese escenario. Cuando una declaración “Assert” es falsa, la ejecución se detiene porque encontró algo que hace que nuestra prueba falle.
Pero, ¿qué significa esto a nivel de concepto? Que un “Assert” es usado solo para validaciones, donde una clausula “If” se utiliza para la lógica dentro de nuestro código. Podemos ver una clausula “If” para determinar si nuestra automatización debe seguir un camino u otro, pero una declaración “Assert” para validar los elementos dentro de esas rutas.
La teoría está muy bien, pero veamos cómo se desarrolla esto en el mundo real. En primer lugar, comencemos con un ejemplo de una situación normal en la que usaría una clausula “If” en mi automatización. Supongamos que tenemos un cuadro de texto y, según el escenario, queremos escribir una cadena válida o no válida en él.
def write_string(self, flag): if flag == True: self.sample_textbox.send_keys("This is a valid string.") else: self.sample_textbox.send_keys("!%#$^%&@@%$^@ Not a valid string.")
Aquí podemos ver que, dependiendo de lo que obtengamos de la bandera, escribimos una cadena válida o no. En este caso, estamos manipulando el flujo de nuestro código, jugando con la lógica de lo que estamos haciendo. No estamos haciendo ninguna validación. Ahora, echemos un vistazo al mismo fragmento de código sobre cómo podemos usar correctamente las aserciones.
def write_string(self, flag): if flag == True: self.sample_textbox.send_keys("This is a valid string.") assert self.sample_textbox.text = "This is a valid string.", "The textbox doesn't have the correct text." else: self.sample_textbox.send_keys("!%#$^%&@@%$^@") assert self.sample_textbox.text = "", "The texbox doesn't have the correct text."
La afirmación aquí tiene un objetivo bastante sencillo.Para validar si el sample_textbox tiene el texto correcto después de escribir una cadena en él. Una cadena, puedo agregar, que se decide en base al resultado de nuestro “If”. Este es el escenario perfecto para ver tanto la clausula “If” y la declaración “Assert”trabajando juntas y viendo claramente las diferencias entre ellos.
Autor: Mike Arias
Senior Software Testing Engineer de TechAID.
Twitter: @theqaboy
Blog: qaboy.com/
COMPARTIR ESTE ARTÍCULO
Correo: howdy@techaid.co
Teléfono: +1 (888) 280-0575
Copyright © 2020 TechAID Solutions, All rights reserved.
¡Prometemos que no lo bombardearemos con tantos correos electrónicos!
¡Prometemos que no lo bombardearemos con tantos correos electrónicos!