ビューをテストするためにDjangoのClient
または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サーバーをテストするのに適しているアプローチの方が適しています)より良い)?
システムのカバレッジを向上させるために、両方でテストを作成する必要がありますか?
RequestFactory
とClient
には、非常に異なるユースケースがあります。単一の文に入れるには、RequestFactory
はrequest
を返し、Client
はresponse
を返します。
RequestFactory
は、それが言うことをします-request
オブジェクトを作成するファクトリです。これ以上でもそれ以下でもありません。
Client
は、完全な要求/応答サイクルを偽造するために使用されます。 request
オブジェクトを作成し、WSGIハンドラーに渡します。このハンドラーはURLを解決し、適切なミドルウェアを呼び出し、ビューを実行します。次に、応答オブジェクトを返します。さらに、テストに非常に役立つresponse
オブジェクトに関する追加データを収集するという利点もあります。
RequestFactory
は実際にはどのコードにも触れませんが、request
オブジェクトを使用して、有効なrequest
を必要とするコードの一部をテストできます。 Client
はビューを実行するため、ビューをテストするには、Client
を使用して応答を検査する必要があります。必ずClient
の- ドキュメント をチェックしてください。