unitarias test pruebas data python django django-testing

python - test - pruebas unitarias django



¿Cómo obtener objeto de solicitud en django unit testing? (5)

Tengo una función como

def getEvents(eid, request): ......

Ahora quiero escribir la prueba de unidad para la función anterior por separado (sin llamar a la vista). Entonces, ¿cómo debo llamar a lo anterior en TestCase . ¿Es posible crear solicitud?



Quieres decir def getEvents(request, eid) ¿verdad?

Con Django unittest, puede usar el from django.test.client import Client para realizar la solicitud.

Vea aquí: Test Client

La respuesta de @ Secator es prefecta ya que crea un objeto simulado que realmente se prefiere para una buena prueba de unidad. Pero dependiendo de su propósito, podría ser más fácil usar las herramientas de prueba de Django.


Si está utilizando el cliente de prueba de django ( from django.test.client import Client cliente from django.test.client import Client ) puede acceder a la solicitud desde el objeto de respuesta de esta manera:

from django.test.client import Client client = Client() response = client.get(some_url) request = response.wsgi_request

o si está usando django.TestCase ( from django.test import TestCase, SimpleTestCase, TransactionTestCase ) puede acceder a la instancia del cliente en cualquier caso de prueba simplemente escribiendo self.client :

response = self.client.get(some_url) request = response.wsgi_request



Vea esta solución :

from django.utils import unittest from django.test.client import RequestFactory class SimpleTest(unittest.TestCase): def setUp(self): # Every test needs access to the request factory. self.factory = RequestFactory() def test_details(self): # Create an instance of a GET request. request = self.factory.get(''/customer/details'') # Test my_view() as if it were deployed at /customer/details response = my_view(request) self.assertEqual(response.status_code, 200)