POR Mike Arias 09/17/2020 0

Clausula IF vs. ASSERT – ¿Cuándo se debe usar cuál?

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.

 

 

if clausses

 

Clausula IF


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.

 

Declaración ASSERT 

 

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.

 

Ejemplos del Mundo Real

 


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.

 

Sigué en contacto con nosotros para aprender más sobre herramientas y pruebas de Software.

 

Autor: Mike Arias
Senior Software Testing Engineer de  TechAID.
Twitter: @theqaboy
Blog: qaboy.com/

VOLVER

COMPARTIR ESTE ARTÍCULO

[addtoany]

Leave a Reply

Your email address will not be published. Required fields are marked *

OTRAS PUBLICACIONES QUE TE PUEDEN GUSTAR

El Verdadero Costo de Contratar Personal para el Equipo de QA

POR Maria Tejeda
05/18/2021 0

API- Herramientas de prueba: Una guía basada en ejemplos

POR Manuel Marinez
04/08/2021 1