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)