Testing en Python

De MediaWiki
Ir a la navegación Ir a la búsqueda

Testing en Python

Pytest
Librería moi popular que permite crear tests unitarios de forma moi sinxela.

‎

 # test_sum.py
 @pytest.mark.parametrize("test_input,expected", [(2,3,5), (3,4,7), (5,6,11)])
 def test_sum_is_working(a, b, result):
 assert sum(a,b) == result
‎
Unittest
Librería estándar de python para facer testing (sobre todo unitario). Basease na creación de Test Cases para probar a aplicación.
Mock
Módulo pertencente á librería de unittest quefacilita a creación de Mocks que imiten o comportamento dunha clase para así poder testear a aplicación de forma independente.
Patch
Método que se atopa no módulo mock e que facilita a substitución de referencias en módulos python por obxectos Mock.

Exemplos

Para probar as aplicacións:

python -m calculadora.main add 1 1
python -m jokes.main

Para ver algunhas das súas opcións ou como funcionan engade o parámetro -h.

Todos os tests están no cartafol tests das aplicacións. Para correlos:

python -m unittest

Calculadora

Este proxecto de python emula o comportamento dunha calculadora. Ten varias operacións implementadas, e teremos que testear que funcionan correctamente.

Jokes

Este proxecto de python ataca a unha API Rest de bromas para recuperalas.

Calculadora con máis probas

O proxecto e as probas.

load_testing - locust

Basease na xeración de varios usuarios virtuais para xenerar carga sobre a aplicación e comprobar o seu comportamento


Exemplo de load testing

property_testing

Baesase na creación de tests válidos para calquer combinación de parámetros que se le poida pasar á función de testing.

‎

1  @given(op1=st.integers(), op2=st.integers())
2  def test_calculate_is_working(op1: int, op2: int):
3   assert sum([op1, op2]) == op1 + op

contract testing

Basease na utilización de API contract para comprobar que a implementación realízase de xeito correcto.

schemathesis run http://localhost:8000/openapi.json

Probas automáticas con Selenium

Referencias