【发布时间】:2021-06-23 01:42:49
【问题描述】:
我正在做一个 django 项目。我已经构建了前端和后端。现在我想写单元测试。
我想测试一个基于类的视图,用于从 url '''path('posts/', Postview.as_view(),name="posts"),''' 创建、删除和检索博客文章 我的 Postview 视图在这里:
class Postview(views.APIView, LimitOffsetPagination):
authentication_classes = [TokenAuthentication, ]
permission_classes = [IsAuthenticated, ]
def get(self, request, pk=None):
if pk:
try:
query = Post.objects.filter(pk=pk)
# print(query)
print("in post get")
serializer = PostSerializer(
query, many=True, context={'request': request})
data = commonPost(serializer.data, request)
return Response(data)
except:
return Response({"message": "No Data found"})
else:
query = Post.objects.all().order_by('-id')
serializer = PostSerializer(
query, many=True, context={'request': request})
data = commonPost(serializer.data, request)
return Response(data)
def post(self, request, pk=None):
if pk:
snapshot = Post.objects.get(pk=pk)
serializers = PostSerializer(
snapshot, data=request.data, context={'request': request})
if serializers.is_valid():
serializers.save()
return Response({'error': False})
return Response({'error': True})
else:
serializer = PostSerializer(
data=request.data, context={'request': request})
if serializer.is_valid():
serializer.save()
return Response({'error': False})
return Response({'error': True})
def delete(self, request, pk):
try:
snippet = Post.objects.get(pk=pk)
if snippet.profile.id == request.user.profile.id:
snippet.delete()
return Response({"error": False})
else:
return Response({"error": True})
except:
return Response({"message": "No data found for this ID"})
现在我的单元测试
def test_post_view(self):
client=self.get_client()
response=client.get("/api/posts/")# this line
self.assertEqual(response.status_code,200)
这个测试给出的错误是 401!=200 但是如果我更改网址 到
response=client.get("/api/posts/1")
测试给出 200_k。
如果我通过client.post("/api/posts/",self.post) #here the post object created through Post model of my Custom Post class. 创建一个新帖子
响应返回 401!=200。
我想知道它为什么会这样,我想知道如何为这段代码创建单元测试。
谢谢。
【问题讨论】:
标签: python django unit-testing django-rest-framework django-views