Saltar al contenido

Cómo aplicar pruebas de integración a una API RESTful de Flask

Solución:

Flask proporciona un test_client que puede usar en sus pruebas:

from source.api import app
from unittest import TestCase

class TestIntegrations(TestCase):
    def setUp(self):
        self.app = app.test_client()

    def test_thing(self):
        response = self.app.get("https://foroayuda.es/")
        assert <make your assertion here>

Documentos de prueba de matraces

Descubrí que puedo obtener los datos JSON aplicando json.loads() a la salida del get_data() método:

import unittest
import flaskapi
import requests
import json
import sys

class TestFlaskApiUsingRequests(unittest.TestCase):
    def test_hello_world(self):
        response = requests.get('http://localhost:5000')
        self.assertEqual(response.json(), {'hello': 'world'})


class TestFlaskApi(unittest.TestCase):
    def setUp(self):
        self.app = flaskapi.app.test_client()

    def test_hello_world(self):
        response = self.app.get("https://foroayuda.es/")
        self.assertEqual(
            json.loads(response.get_data().decode(sys.getdefaultencoding())), 
            {'hello': 'world'}
        )


if __name__ == "__main__":
    unittest.main()

Ambas pruebas pasan como se desea:

..
----------------------------------------------------------------------
Ran 2 tests in 0.019s

OK
[Finished in 0.3s]

Lo que está haciendo allí no es una prueba unitaria. En todos los casos, cuando utiliza la biblioteca de solicitudes o el cliente de matraz, realiza pruebas de integración a medida que realiza llamadas http reales a los puntos finales y prueba la interacción.

O el título de la pregunta o el enfoque no es exacto.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *