Descripción: Tutorial espartano para escribir tests con Flask
Publicado el 18/8/2023
Escrito por Nicolas Riquelme
Importamos unittest y Flask:
import unittest
from flask import Flask
Creamos una clase que herede de unittest.TestCase:
class FlaskTests(unittest.TestCase):
# tests aquí
Inicializamos la app de Flask en el método setUp():
def setUp(self):
self.app = Flask(__name__)
Escribimos tests para las vistas con el cliente de tests:
def test_index(self):
with self.app.test_client() as client:
res = client.get('/')
self.assertEqual(res.status_code, 200)
Mockeamos con @mock.patch para reemplazar partes complejas:
@mock.patch('requests.get')
def test_api(self, mock_get):
# Testea API mockeada
Usamos SQLite en memoria para los tests:
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
Ejecutamos los tests con unittest:
python -m unittest
Vemos la cobertura de código con coverage:
coverage run -m unittest
coverage report
Configuramos CI para ejecutar tests automáticamente.
.github/workflows/ci.yml
para GitHub Actions.python -m unittest
.