with unit tutorial test framework django unit-testing django-views django-rest-framework django-testing

unit - Django prueba RequestFactory vs Client



rest framework django 2 (1)

RequestFactory y Client tienen casos de uso muy diferentes. Para ponerlo en una sola oración: RequestFactory devuelve una request , mientras que el Client devuelve una response .

RequestFactory hace lo que dice: es una fábrica para crear objetos de request . Nada más y nada menos.

El Client se utiliza para simular un ciclo completo de solicitud-respuesta. Creará un objeto de request , que luego pasa a través de un manejador de WSGI. Este controlador resuelve la url, llama al middleware apropiado y ejecuta la vista. Luego devuelve el objeto de respuesta. Tiene el beneficio adicional de que reúne una gran cantidad de datos adicionales en el objeto de response que es extremadamente útil para las pruebas.

RequestFactory no toca realmente ninguno de sus códigos, pero el objeto de request se puede usar para probar partes de su código que requieren una request válida. El Client ejecuta sus vistas, por lo que para probar sus vistas, debe usar el Client e inspeccionar la respuesta. Asegúrese de verificar la documentación en el Client .

Estoy intentando decidir si debo usar Django''s Client o RequestFactory para probar mis vistas.

Estoy creando mi servidor usando DjangoRESTFramework y es muy simple, hasta ahora:

class SimpleModelList(generics.ListCreateAPIView): """ Retrieve list of all route_areas or create a new one. """ queryset = SimpleModel.objects.all() serializer_class = SimpleModelSerializer filter_backends = (IsOwnerFilterBackend,) def perform_create(self, serializer): serializer.save(owner=self.request.user)

¿Cuáles son las diferencias entre las pruebas con Django''s Client y RequestFactory y qué enfoque es más adecuado para probar un servidor REST (si hay alguna diferencia además de gustarle a uno mejor)?

¿Debo crear pruebas con ambos para proporcionar una mejor cobertura para mi sistema?