lundi 11 janvier 2021

Would these tests be considered unit tests? How do I make an integration test with this?

I'm writing tests for my django rest app and I'm wondering if these are considered unit tests. I was told I should write integration and unit tests but I'm not sure how to test the app with the integration tests (if the tests I've already written are unit tests).

This is my test view:

from django.urls import reverse
from rest_framework import status
from rest_framework.test import APITestCase

from todo.models import Task

class CreateTaskTest(APITestCase):
    def setUp(self):
        self.data = {'title': 'title', 'description': 'desc', 'completed': False}

    def test_can_create_task(self):
        response = self.client.post(reverse('task-list'), self.data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

class ListTaskTest(APITestCase):
    def setUp(self):
        self.data = {'title': 'title', 'description': 'desc', 'completed': False}
   
    def test_can_list_task(self):
        response = response = self.client.get(reverse('task-list'), self.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)

class DeleteTaskTest(APITestCase):
    def setUp(self):
        self.data = Task.objects.create(title= 'title', description= 'desc', completed= False)

    def test_can_delete_task(self):
        response = self.client.delete(reverse('task-detail', args=(self.data.pk,)))
        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)

class RetrieveTaskDetailsTest(APITestCase):
    def setUp(self):
        self.data = Task.objects.create(title= 'title', description= 'desc', completed= False)

    def test_can_retrieve_task_details(self):
        response = self.client.get(reverse('task-detail', args=(self.data.pk,)))
        self.assertEqual(response.status_code, status.HTTP_200_OK)

This is my view:

from rest_framework import generics, filters
from todo import models
from .serializers import TaskSerializer
from django_filters.rest_framework import DjangoFilterBackend

class ListTask(generics.ListCreateAPIView):
    """
    API view to retrieve list of tasks or create new tasks
    """
    queryset = models.Task.objects.all()
    serializer_class = TaskSerializer
    filter_backends = [DjangoFilterBackend, filters.SearchFilter]
    filterset_fields = ['date']
    search_fields = ['description']

class DetailTask(generics.RetrieveDestroyAPIView):
    """
    API view to retrieve or delete a task
    """
    queryset = models.Task.objects.all()
    serializer_class = TaskSerializer

How can I write an integration test, what am I supposed to be testing?

Aucun commentaire:

Enregistrer un commentaire