PyTest: Pruebas Unitarias en Python 🐍 | Unit Tests | Testing Automatizado con Python ✅
Summary
TLDREste video tutorial ofrece una introducción a la utilización de la librería Pytest para realizar pruebas unitarias y testing automatizado en Python. El creador guía a los espectadores a través del proceso de creación de un entorno virtual, instalación de Pytest y creación de funciones básicas en un archivo llamado 'Main.py'. Luego, se enseña cómo estructurar las pruebas en una subcarpeta 'test' y ejecutar pruebas simples utilizando la función 'assert' para verificar resultados esperados. Continua con pruebas más avanzadas, incluyendo el uso de parámetros y la verificación de funcionalidades como un sistema de inicio de sesión y una clase 'LanguageModel'. El objetivo es enseñar a los programadores a integrar pruebas automatizadas en sus proyectos para garantizar la calidad y el correcto funcionamiento del código.
Takeaways
- 😀 El video ofrece una introducción a la utilización de la librería Pytest para realizar testing automatizado y pruebas unitarias en Python.
- 🛠️ Se muestra cómo crear un entorno virtual en Python para aislar las dependencias del proyecto.
- 📚 El creador del video enseña a instalar la librería Pytest y a verificar su instalación exitosa.
- 📁 Se crea una estructura de carpetas para organizar el código fuente y las pruebas unitarias.
- 🔢 Se implementa una función simple llamada 'suma' para demostrar cómo escribir pruebas unitarias.
- 🆚 Se crea otra función 'is_greater' para comparar si un número es mayor que otro, también sujeto a pruebas.
- 📝 Se explica la importancia de las pruebas unitarias para garantizar que el código siga funcionando después de realizar cambios.
- 🔍 Pytest se presenta como una herramienta para facilitar las pruebas unitarias, enfocándose en probar funcionalidades específicas del código.
- 📈 Se ejemplifica cómo escribir una prueba para la función 'suma' y cómo interpretar los resultados de las pruebas.
- 🔧 Se utiliza el decorador `@pytest.mark.parametrize` para probar la función 'suma' con una variedad de parámetros y casos de prueba.
- 🚫 Se muestra cómo identificar y solucionar errores mediante las pruebas automatizadas, como el caso de una prueba fallida debido a una expectativa incorrecta.
Q & A
¿Qué es la librería pipes y cómo se utiliza en el script del video?
-Parece que hay un error en el script, ya que no se menciona la librería 'pipes'. Sin embargo, el script habla sobre la librería 'pytest', que se utiliza para realizar testing automatizado y crear pruebas unitarias en Python.
¿Cómo se crea un entorno virtual en Python y por qué es útil?
-Se crea un entorno virtual utilizando el comando 'python -m venv nombre_del_entorno'. Es útil porque aísla las dependencias de los proyectos, evitando conflictos entre las versiones de los paquetes en diferentes proyectos.
¿Qué comando se utiliza para activar un entorno virtual en Windows?
-Para activar un entorno virtual en Windows, se utiliza el comando 'scripts\activate' dentro de la carpeta del entorno virtual.
¿Qué hace el comando 'pip install pytest' en el script?
-Este comando instala la librería 'pytest' en el entorno virtual actual. 'Pytest' es una herramienta para realizar pruebas unitarias y automatizadas en proyectos de Python.
¿Qué es un archivo '__init__.py' y por qué se utiliza?
-El archivo '__init__.py' es un archivo que indica a Python que el directorio que lo contiene debe ser tratado como un paquete. Se utiliza para organizar el código y permitir la importación de módulos dentro de ese paquete.
¿Qué función se crea en el script para sumar dos números?
-Se crea una función llamada 'zoom_sumar' que recibe dos parámetros, 'x' e 'y', y retorna su suma.
¿Cuál es la función 'is_greater' y qué hace?
-La función 'is_greater' es una función que recibe dos números, 'number1' y 'number2', y retorna un valor booleano indicando si 'number1' es mayor que 'number2'.
¿Qué es un test y por qué es importante realizar pruebas en el código?
-Un test es una verificación automatizada del comportamiento de una función o sistema. Es importante realizar pruebas para asegurar que las funcionalidades del código continúen funcionando correctamente a pesar de los cambios y mejoras en el proyecto.
¿Qué hace el comando 'pytest -v' en el script?
-El comando 'pytest -v' ejecuta las pruebas unitarias con un nivel de detalle más alto, mostrando información más detallada sobre el resultado de las pruebas.
¿Cómo se utiliza la parametrización en las pruebas con 'pytest'?
-La parametrización en 'pytest' se logra utilizando el decorador '@pytest.mark.parametrize', el cual permite pasar diferentes conjuntos de valores a las pruebas para verificar el comportamiento de la función con varias entradas.
¿Qué función se crea para simular un proceso de inicio de sesión?
-Se crea una función llamada 'login' que recibe un 'user_name' y un 'password', y retorna un valor booleano. Solo retorna verdadero si el 'user_name' es 'busco_chrome_2010' y el 'password' es '123456'.
¿Cómo se puede verificar que una lista de elementos en una base de datos no está vacía y contiene elementos validos?
-Se pueden crear pruebas que verifiquen que la lista no es 'None', tiene elementos (longitud mayor a cero) y que cada elemento tiene una longitud mayor a cero, evitando así cadenas vacías.
Outlines
😀 Introducción a las pruebas automatizadas con la librería pytest
El video ofrece una introducción a la realización de pruebas automatizadas y unitarias en Python utilizando la librería pytest. Se comienza por crear un entorno virtual y se procede a instalar pytest. Luego, se crea una carpeta 'source' con un archivo 'main.py' que contiene funciones básicas como 'suma' y 'is_greater'. Se destaca la importancia de las pruebas unitarias para asegurar que las funcionalidades del código continúen funcionando a pesar de los cambios y mejoras. Se sugiere ver otros videos del canal para comprender mejor los entornos virtuales y los paquetes en Python.
🔍 Ejecución y detalle de pruebas unitarias con pytest
Se describe el proceso de ejecutar pruebas unitarias utilizando pytest. Primero, se ejecuta 'pytest' en la consola para detectar y ejecutar las pruebas, mostrando los resultados de las pruebas y su eficacia en tiempo real. Luego, se utiliza la opción '-v' para obtener un resultado más detallado, lo que permite ver el nombre de las funciones probadas y su estado. Además, se explica cómo probar funciones con diferentes valores utilizando el decorador 'pytest.mark' y la parametrización de pruebas para ejecutar una función con múltiples parámetros en una sola ejecución de pytest.
🛠 Pruebas de funcionalidades y manejo de errores
El script avanza hacia la creación de pruebas para validar funcionalidades más complejas, como una función de inicio de sesión 'login' que verifica credenciales. Se muestra cómo escribir pruebas tanto para casos donde se espera un resultado positivo como para casos de error. Se utiliza 'assert' para verificar que las respuestas de las funciones son las esperadas, y se ejemplifica cómo se manejan los casos de prueba fallidos, permitiendo identificar rápidamente los errores en el código. Además, se abordan pruebas para una función 'get_language' que simula la conexión a una base de datos y devuelve una lista de lenguajes de programación.
📚 Conclusión y recursos adicionales para aprender más sobre pytest
El video concluye con una revisión de las pruebas realizadas y se enfatiza la utilidad de pytest para la comprobación continua y automatizada del código. Se invita al espectador a dejar comentarios con sus dudas o sugerencias para futuros videos más avanzados. El presentador ofrece sus redes sociales y menciona que el canal cuenta con más de 600 videos sobre programación, tecnología y consejos para YouTube, creados con el propósito de ser útiles para el público.
Mindmap
Keywords
💡Testing automatizado
💡Pruebas unitarias
💡Librería pytest
💡Entorno virtual
💡Funciones de prueba
💡Aserciones
💡Parametrización
💡Ejecución de pruebas
💡Cobertura de pruebas
💡Modelo de lenguaje
Highlights
Tutorial introductorio sobre cómo utilizar la librería pytest para realizar testing automatizado y crear pruebas unitarias en Python.
Creación de un entorno virtual para trabajar con Python utilizando el comando 'python -m venv vm'.
Activación del entorno virtual y verificación de los paquetes instalados con 'pip list'.
Instalación de la librería pytest con 'pip install pytest'.
Creación de una carpeta 'source' con un archivo 'main.py' para el código fuente.
Ejemplo de una función simple 'zoom_sumar' que suma dos números.
Creación de una función 'is_greater' para comparar si un número es mayor que otro.
Importancia de las pruebas unitarias para garantizar que el código siga funcionando después de cambios.
Uso de pytest para probar funcionalidades específicas del código de manera unitaria.
Estructura de un archivo de prueba con el nombre 'test_' seguido del nombre del archivo a probar.
Ejecución de pruebas con el comando 'pytest' y análisis de los resultados.
Uso del parámetro '-v' para obtener resultados más detallados en pytest.
Prueba de la función 'is_greater' con valores específicos y verificación del resultado.
Uso de parametrización con pytest para probar una función con diferentes conjuntos de parámetros.
Creación de una función 'login' para simular la verificación de credenciales contra una base de datos.
Pruebas de la función 'login' con credenciales correctas e incorrectas para verificar su comportamiento.
Creación de una clase 'LanguageModel' para simular la conexión y retorno de datos de una base de datos.
Pruebas de la clase 'LanguageModel' para verificar la integridad y contenido de la lista de lenguajes devueltos.
Inclusión de ejemplos de cómo probar la lógica de negocio y la conexión a bases de datos con pytest.
Invitación a los espectadores a dejar comentarios, suscripciones y compartir el video para recibir más contenido similar.
Transcripts
Hola amigos de YouTube en este vídeo Te
voy a enseñar de manera introductoria
Cómo utilizar la librería pipes para
realizar testing automatizado y crear
pruebas unitarias en python si te
interesa saber cómo probar tus programas
de manera automatizada pues quédate
hasta el final del vídeo empezamos
[Música]
tengo aquí ya creado una carpeta en el
escritorio que he arrastrado aviso el
estudio code Nada del otro mundo Así que
voy a abrir una terminal en la parte
superior nuevo terminal y vamos a
comenzar creando un entorno virtual para
trabajar el día de hoy Así que vamos a
crear aquí con python y un m virtual m
Vamos a ponerle vm doy un enter para que
se cree el entorno virtual listo Ahora
toca activarlo esto ya lo he hecho en
varios de los vídeos de mi canal donde
te enseño python Así que te invitaría
que los revises Ok entramos a vm a
virtual environment a scripts activate
para activar nuestro entorno virtual si
no has trabajado mucho con entornos
virtuales te recomiendo que veas el
vídeo que está apareciendo en este
momento en la parte superior una vez
activo nuestro entorno virtual voy a
ejecutar Philips para ver lo que tengo
instalado solamente tengo los paquetes
básicos y vamos a comenzar instalando
con pip install la librería Pay test
bien damos un enter listo ya lo tengo
vamos a comprobar nuevamente
para ver si es que tengo la librería Y
sí correctamente Aquí está junto con
algunas librerías y paquetes adicionales
que necesita voy a volver a limpiar con
cls para limpiar la consola y vamos a
comenzar creando aquí una carpeta
llamada source donde voy a tener un
archivo llamado Main puede ser main.py y
para que se tome como un paquete Pues
voy a ponerle guión bajo guión bajo
init__.b si no conoces mucho acerca del
trabajo con paquetes y módulos en python
puedes ver el vídeo que te está
apareciendo en este momento en la parte
superior Bien dentro de main lo que voy
a hacer es crear una función llamada
zoom sumar muy sencilla realmente
bastante sencilla y lo único que va a
hacer es retornar x + y que sería lo
básico Pero la idea de hoy es aprender
Cómo probar y vamos a comenzar con
ejemplos básicos para ir más adelante
con algo más avanzado listo entonces
tendría esta función aquí suma bastante
sencilla voy a aprovechar de crear una
función también llamada is greater Tank
que significa es mayor Aquí también que
reciba un número uno number 1 y number 2
y lo que va a hacer esta función lo que
va el trabajo que nos va a dar es
retornar si es que este número es mayor
que el otro Así que simplemente voy a
copiar aquí y poner el símbolo de mayor
bien sería ya dos funciones que voy a
poder probar más adelante para hacer
esto dentro de surf voy a crear una
subcarpeta llamada test que no es
necesario hacerlo pero para ir
manteniendo un orden con nuestro código
lo voy a hacer así una carpeta separada
donde estén solamente los testing voy a
también copiar el archivo init para
convertirlo en un paquete ya está lo
tengo dentro de Test y aquí voy a crear
un nuevo archivo llamado test guión bajo
Main lo importante para que un archivo
de prueba se reconozca es que tenga
primero el nombre test guión bajo y el
nombre pues que tú quieras indicarle
como estoy probando las funcionalidades
de el archivo Main Pues sería bueno
poner test guión bajo Main para indicar
que estoy probando esas funcionalidades
Cuál es la diferencia de las pruebas del
testing en nuestro código son
importantes realizar las pruebas porque
lo que funciona en un momento lo que
funciona ahora en nuestro código debería
seguir funcionando si es que hacemos
pruebas recordemos que un proyecto de
programación en cualquier lenguaje
siempre está sujeto a cambios Así que es
importante poder probar que las
funcionalidades que ya teníamos
funcionando valga la redundancia si
nosotros hacemos cambios en nuestro
código mejoras todo siga funcionando tal
cual Así que es bueno poder
acostumbrarnos a escribir pruebas que
ejecuten de manera automatizada toda esa
comprobación de la lógica y de las
funciones que tenemos pytés es una
librería que nos ayuda con esto es
justamente la que hemos instalado y se
enfoca en pruebas unitarias es decir en
probar funcionalidades específicas de
nuestro código bien Vamos a comenzar
aquí
importando de source del archivo Main
vamos a importar la función zoom y la
función isrator tan esas dos y vamos a
comenzar probando la función
suma voy a crear aquí una función
llamada test guión bajo zoom y voy a
poner la palabra acert es una palabra
clave una palabra reservada y bastante
orientada muy utilizada en varios
lenguajes en varios frames para indicar
que un valor debe ser igual a otro aquí
donde realmente vamos a comprobar si el
resultado de una función es el esperado
Así que vamos a utilizar la función zoom
y vamos a poner Digamos 2,5 si sumamos 2
y 5 esto no debería dar 7 Así que voy a
poner igual a 7 te estarás imaginando
que esto es muy sencillos de comprobar y
de verificar pero vamos a ir poco a poco
y lo importante es que aprendas Cómo
hacer pruebas y cómo poder interpretar
los resultados que tengas más allá de lo
que estemos haciendo Así que vamos a
comenzar con esto Ahora aquí en la
consola voy a ejecutar pitest
simplemente paytés lo escribo y le pulso
la tecla enter países automáticamente
detectó todos los archivos de prueba que
tengo ha detectado voy a acercar aquí un
poco el archivo source guión test bueno
s
y me dice que esa prueba pasado pasó en
0.01 segundos y podemos ver aquí el
resultado bueno 100% de efectividad en
mis pruebas todas pasaron Solamente
tengo una por el momento veo aquí
también al costado del nombre del
archivo un punto ese punto me indica que
todo las pruebas contenidas en este
archivo pasaron pero digamos que yo
quiero un poco más de detalle Quiero ver
el resultado o el nombre quizá exacto de
la función que probé Así que voy a poner
nuevamente Pay test guión V este guión V
lo que hace es poner el resultado más
verboso entonces lo que va a hacer es
que sea más detallado más explicativo
voy a limpiar con cls voy a volver a
ejecutar y podemos ver aquí el resultado
me dice que de ese archivo test guión
bajo Main ha ejecutado la función test
zoom y ha pasado y como es la única que
tengo es mi 100% de pruebas han pasado
efectivamente han pasado de manera
exitosa también veo que dice collecte
ítem eso significa que es el único ítem
de prueba que ha podido encontrar paités
en mi código por ahora para hacerlo un
poco más complejo vamos a probar otra
función vamos a probar la función test y
un bajo israton y vamos a darle aquí
pues dos valores también para poder
probar nuevamente con acert vamos a
verificar que algo es verdadero si no te
lo mencioné hacer lo que haces verificar
que esto sea verdad Entonces sí lo que
estamos tratando de comprobar es verdad
pues eso daría como resultado que la
prueba pasó Así que vamos a utilizar
aquí la función israter tan y vamos a
ponerle 10,2 10 Es mayor que 2 bueno
Esto debería dar verdadero y si esto da
verdadero el láser indica que la prueba
ha pasado vamos a limpiar con cls
volvemos a ejecutar y ahora vemos que
dos pruebas han sido recolectadas
collected to items y vemos ahí las dos
pruebas que han pasado a la derecha
debería aparecer 50% cada una Ahí está
bueno 50% y 100% no en cuenta y 50 más
el 100% de mis pruebas han pasado veo
también dos pasadas en 0.02 segundos así
que de esta manera ya estoy haciendo
pruebas de mi código y de las
funcionalidades puntuales que he
construido como esta zoom sumar y como
is greater Tom para saber si un valor Es
mayor que otro pero de esto no queda
aquí puedo hacer muchas cosas más
digamos que Quiero probar con un Rango
de valores porque estar probando aquí
solamente con dos y cinco Quizá no me es
tan útil Así que vamos a utilizar algo
que también nos provee la librería el
paquete Pay test voy a importarlo import
Pay test aquí está y vamos a hacer lo
siguiente voy a volver a probar de una
de alguna manera la función test zoom
bien Pero esta vez la voy a probar con
parámetros Así que voy a poner otro
nombre vamos a poner aquí input x
para indicar los dos valores que esperan
no que son los dos números que quiero
sumar Y también voy a ponerle acá un
parámetro llamado espected que es lo que
espero recibir o lo que espero lograr el
valor esperado de ese procesamiento Aquí
voy a poner asert nuevamente zoom y
vamos a poner estos dos valores
deberían ser igual al Spec pero no queda
aquí esto necesito darle unos parámetros
para que pueda probar y aquí tengo
mediante países un decorador pay test
punto Marc y vamos a pasarle aquí
parametrice parametrización o valores
parametrizados esto de aquí voy a darle
una serie de parámetros en una lista voy
a poner aquí una lista y dentro vamos a
poner tuplas con valores digamos que el
primer par de valores que Quiero probar
es 5,16 Qué significa que cuando el 5
sea el inputx el 1 sea el input 10 Yo
espero que bueno el spected sea 6 tal
cual cinco más uno Debería ser 6
Entonces estos valores que yo estoy
poniendo aquí una tupla se van a
reemplazar como estos parámetros y van a
entrar en cada posición a trabajar y así
como tengo esto Pues podría tener más
vamos a poner aquí unos cuatro ejemplos
más vamos a poner aquí como segundo 6
aquí Quiero probar la suma nuevamente
puedo utilizar la función zoom 4,2 Eso
me daría 6 6 + 6 debería darme 12 por
aquí vamos a probar la suma de 19 y 1
que debería darme 20 15 me debería dar
35 20 + 15 35 y lo último quizá un
negativo menos 7 más 10 debería darme
pues la suma de esos dos valores de -7 y
10 listo eso es lo que voy a tener hasta
el momento pero aquí falta algo tengo
que indicar como primer parámetro a esta
función parametrice los nombres de estas
variables o estos parámetros que voy a
esperar así que lo voy a poner aquí
entre comillas dobles una coma Y de esa
manera ya quedaría ahora si Yo corro
esto lo lo que va a pasar Es que voy a
ejecutar o voy a probar la función suma
varias veces voy a probarla por cada
dupla que tengo por aquí serían cuatro
pruebas en total Así que voy a subir
aquí un poquito la consola cls y vuelvo
a ejecutar fighters-v podemos ver como
resultado que ha recolectado 6 ítems y
vemos aquí todos los resultados que ha
hecho
5.166 12 20 con 15 35 y así
sucesivamente y todos han pasado en la
parte de la derecha puedo ver el
porcentaje de avance de cada prueba y se
puede apreciar Qué pasa si es que ahora
yo cambio aquí en lugar de 12 voy a
poner 13 vamos a limpiar y volver a
ejecutar y aquí donde realmente puedes
ver Para qué nos sirven las pruebas sin
que yo haya tenido que comprobar todo
manualmente y automáticamente las
pruebas me dio como resultado que una ha
fallado específicamente la que falló fue
la cuarta prueba 66 debería darme 12
pero esperaba 13 Bueno eso está mal
porque 6 y 6 me da 12 Pero según esa
prueba según ese pará esperaba 13 y voy
a bajar aquí un poco para que se pueda
apreciar mejor aquí se puede ver dice
que asert comparó 12 contra 13 y por lo
tanto no son valores iguales Así que esa
prueba ha fallado Pero eso no implica
que las demás hayan fallado las demás y
pasaron entonces voy a regresarlo como
estaba 12 vamos a limpiar volver a
ejecutar y puedo ver que todo sigue
funcionando correctamente ese fallo
también podría haberse expresado en
alguna de estas funciones si yo pongo
por ejemplo que 10 es mayor a 12 Bueno
eso es falso Así que la prueba debería
fallar vamos a ver y efectivamente falló
con esto estamos comprobando que una
función o una serie de funciones falle
Yo también podría ser que fallen dos a
la vez digamos que también va a fallar
esta limpio vuelvo a ejecutar y ahora
veo un resultado mucho más grande donde
dos pruebas han fallado de las seis que
tenía y tengo los resultados de cada una
aquí en este caso me está diciendo que
falló en la función test is greater tan
y acá me está diciendo que falló en ese
parámetro bueno un conjunto de
parámetros puntuales bueno fue aquí para
la función test zoom para la prueba de
las sumas bien Vamos correctos hasta
aquí vamos a hacer algo más voy a
regresar a Main y voy a crear una
función llamada login voy a escribirla y
te lo explico bien esta función login lo
que hace es recibir dos parámetros bueno
Aquí le voy a poner user name mejor va a
recibir un nombre de usuario y un
password aquí simularíamos que estamos
conectándonos a una base de datos para
comprobar las credenciales y va a
regresar verdadero si es que user name
es igual la busco Chrome 2010 y también
el password es igual a 1 2 3 4 5 6
solamente en ese caso retorna verdadero
Bueno aquí podría también poner return
directamente Pero bueno para que se vea
un poquito más claro por esta vez vamos
a hacerlo así con un If y un Else en el
caso de que alguno de estos dos no se
cumpla directamente va a retornar Falls
vamos a probar esta función login porque
solamente debería darme verdadero cuando
estos dos valores son los adecuados
vamos a regresar a 3 Main vamos a
importar la aquí en la parte superior
login y en este caso vamos a crear
cuando pase login te es login cuando
pase vamos a hacer aquí una variable
llamada login pass bueno paso que sea
igual a login y le pasamos Busco Chrome
2010 los valores correctos y la clave
del 1 al 6 y vamos a decir o bueno vamos
a hacer un láser de esto a ver si es que
es cierto también podría haberlo puesto
en una sola línea Pero bueno vamos a
hacerlo de esta manera también voy a
crear otro test para cuando falle Así
que aquí Vamos a ponerle fail
y Bueno solamente por tener un orden
aquí con las variables le pongo de esta
manera Aquí voy a hacer que falle le voy
a poner uso común 2010 XD digamos que no
es el usuario correcto y la clave hasta
el 8 bueno son valores que son falsos y
no deberían darme verdadero para esa
función voy a regresar también lo que
tenía por aquí para que no fallen estas
pruebas Ok Aquí está listo entonces Aquí
voy a hacer algo más si lo dejo tal cual
está la primera prueba va a pasar pero
la segunda va a fallar y aquí yo no debo
comprobar para este caso que me retorne
verdadero sino que si le doy las claves
o bueno las credenciales incorrectas el
usuario y el password incorrecto me
debería retornarlo bien un negativo así
que debo estar seguro de que lo que me
retorna es un falso por lo tanto el
láser va a ser a notch Qué significa en
python para los que ya lo conocen not es
negar algo entonces si niego un falso
estoy dando estoy obteniendo un
verdadero y es justamente lo que debería
darme aquí debo comprobar para el caso
de un login si le doy las credenciales
correctas me de true pero también debo
comprobar que si les doy las claves
incorrectas ve de un Falls no debería
Mostrarme o no debería de volverme true
en ambos casos porque si no mi login no
serviría para nada entonces es algo muy
particular que se puede ver por ejemplo
en este caso de un login de un inicio de
sesión Como debería ser en cada caso voy
a volver a ejecutar aquí con pytés y
puedo ver que todo ha pasado ha pasado
el login pass y el login fail entonces
pasó o funcionó bien cuando las
credenciales fueron correctas y falló
cuando debió fallar también me retorno
falso cuando debió retornar falso bien
Vamos a hacer un ejemplo más voy a crear
dentro de surf una carpeta llamada
models vamos a simular aquí la conexión
a una base de datos y el retorno de una
lista primero creo mi init punto Pi y
vamos a crear en esta parte digamos un
Language model como si tuviéramos un
modelo para poder leer lenguajes
lenguajes de programación dentro de Test
también para tenerlo ordenado voy a
crear un models voy a copiar para que no
me falle y vamos a crear de una vez un
archivo llamado test guión bajo Language
model para que se dedique a probar Pues
todo lo que tenga en este archivo
llamado lenguage model listo dentro de
lenguage model que es lo que vamos a
hacer voy a escribir rápidamente una
clase tengo aquí una clase llamada
lenguage model y un método de clase
llamado get Language que lo único que
hace es retornar una lista de lenguajes
de programación si charry haga Script
etcétera me retorna esta lista simulamos
aquí que nos hemos conectado una base de
datos y esto lo estamos trayendo
mediante una consulta o un orm quizá
Bueno lo importante es que tenemos aquí
una lista para comprobar que sea
correcto dentro de Test guión bajo
Language model vamos a comprobar primero
que esa lista que se me retorne sea
distinta de Non el Non es equivalente en
otro lenguaje de programación al null a
la ausencia de un valor también debemos
comprobar que esa lista tenga elementos
y también Sería bueno comprobar que cada
elemento su el texto que tenga sea no
sea vacío porque también podría ser una
cadena de caracteres vacío y eso no me
sirve Entonces vamos a comprobar esos
tres posibles escenarios Aquí voy a
comenzar importando Bueno una sección
aquí para importar models from Surf
punto models punto lenguage model voy a
importar lenguas Mode lo siguiente es
crear una función llamada test get
Language Esto va a ser bastante parecido
para tener un orden y aquí voy a
comprobar que no sea no es decir que lo
que me retorne no sea no vamos a poner
aquí una variable Language igual
Language model punto get Language y voy
a hacer un aser de que esto Language sea
diferente de no Eso debería ser cierto
bien Vamos a comenzar con esto limpiamos
la consola volvemos a ejecutar y vemos
Que efectivamente me ha dado un
resultado de qué ha pasado esa prueba
podemos ver ahí toda la ruta no está
dentro de Test model Slash test guión
bajo Language model punto pay y ha
pasado la prueba muy bien otra prueba
interesante sería que tenga elementos
Así que voy a poner aquí
elements tiene elementos y lo que voy a
comprobar aquí es que la longitud de
estos lenguajes sea mayor a cero mayor a
cero listo y de una vez voy a hacer lo
siguiente vamos a copiar una vez más y
voy a comprobar la longitud de cada uno
de esos elementos check
elements Language quizá Perdón check
elements la longitud de cada uno y vamos
a hacer aquí un foro para cada lenguaje
para cada lenguaje en esta lista de
lenguajes vamos a hacer un aser de que
la longitud de cada uno de estos
lenguajes sea mayor a cero esa sería mi
tercera prueba vamos a limpiar volver a
ejecutar y vemos Que todos han pasado
porque todos los elementos bueno primero
la lista no es Non después existen
elementos y también cada elemento su
longitud es mayor a cero Esto fallaría
si es que aquí algunos de los elementos
digamos hay javascript lo quito y va a
ser una cadena de caracteres vacía vamos
a ver lo que con esto limpiamos
ejecutamos y vemos que ha fallado la
tercera prueba porque la longitud de un
elemento en particular en este caso
bueno javascript que ya no existe esa
longitud fue cero para este caso y fallo
Así que esto sería una buena manera de
ir comprobando algo tan complejo como la
lectura de una base de datos poder leer
una lista de elementos y poder ver que
exista la lista que tenga elementos y
que cada elemento tenga quizá un formato
una cantidad mínima de caracteres o
determinada regla a cumplir como parte
de una lógica de negocio que quieres
alcanzar con esto amigo o amiga
programadora Espero que hayas tenido ya
un acercamiento A las pruebas
automatizadas con pytés como la librería
pites de python puedas ver cómo realizar
pruebas unitarias te haya gustado y lo
comiences a aplicar en tus proyectos Si
te gustaría que traiga ejemplos más
avanzados Quizá en un proyecto real con
flash con python y Flash poder probar
ciertas funcionalidades pues déjamelo
saber en la caja de comentarios también
cualquier duda Puedes hacerlo por ahí No
te olvides de dejarme tu like
suscribirte y compartir este vídeo si te
ha servido Gracias si te ha gustado este
vídeo dale like suscríbete a mi canal y
activa esa campanita para saber Cuando
suba un nuevo vídeo Te dejo mis redes
sociales para que puedas seguirme y
ponerte en contacto conmigo si es que lo
deseas recuerda que en mi canal tienes
más de 600 videos de programación
tecnología consejos de YouTube y mucho
más todo este contenido fue creado 100%
para ti
Weitere ähnliche Videos ansehen
Cómo Saber Si Una Estrategia De Trading Funciona Sin Perder Ni $1
Cómo instalar Kali Linux en VirtualBox Tutorial paso a paso
Cómo Escribir Casos de Pruebas | Paso a paso
Prueba diagnóstica.
Extensiones eléctricas, medición de Fase y Neutro
Automatización con Selenium y Cucumber [JAVA] #4 ► Primer Escenario en Gherkin 🥒
5.0 / 5 (0 votes)