我想確定是否應該使用Django的Client
或RequestFactory
來測試我的視圖。Django測試RequestFactory與客戶端
我使用DjangoRESTFramework創建我的服務器,它真的很簡單,到目前爲止:
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)
什麼是Django的Client
和RequestFactory
和哪種方法更適合用於測試REST服務器測試之間的差異(如除了喜歡更好的之外,還有什麼不同)?
我應該爲兩者創建測試以便爲我的系統提供更好的覆蓋範圍嗎?
謝謝你的回答。你能舉一個例子,說明一個工廠更適合用於測試嗎? –
如果您要創建類似於內置['AuthenticationForm'](https://docs.djangoproject.com/en/1.8/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm)的東西, ,它將'request'對象作爲第一個參數,您可以使用'RequestFactory'來測試它。 – knbk
我不認爲使用'客戶端'來測試視圖是絕對必要的。我見過使用RequestFactory創建'request'的代碼,然後調用'SomeView.as_view()(request)'來獲得響應。但是我來到這裏是因爲我不確定那是做這件事的最好方式。在另一個問題的人說'客戶端'更集成測試:http://stackoverflow.com/questions/5777447/test-django-views-that-require-login-using-requestfactory?rq=1 – Andy