I am trying to decide whether I should use Django's
RequestFactory to test my views.
I am creating my server using DjangoRESTFramework and it's really simple, so far:
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):
What are the differences between testing with Django's
RequestFactory and which approach is more suited for testing a REST server (if there is any difference besides liking one better)?
Should I create tests with both so as to provide a better coverage for my system?
Best How To :
Client have some very different use-cases. To put it in a single sentence:
RequestFactory returns a
Client returns a
RequestFactory does what it says - it's a factory to create
request objects. Nothing more, nothing less.
Client is used to fake a complete request-response cycle. It will create a
request object, which it then passes through a WSGI handler. This handler resolves the url, calls the appropriate middleware, and runs the view. It then returns the response object. It has the added benefit that it gathers a lot of extra data on the
response object that is extremely useful for testing.
RequestFactory doesn't actually touch any of your code, but the
request object can be used to test parts of your code that require a valid
Client runs your views, so in order to test your views, you need to use the
Client and inspect the response. Be sure to check out the documentation on the