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?